自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(116)
  • 收藏
  • 关注

原创 使用NSIS工具在linux下自动构建生成windows安装包

目前手头的项目都是基于linux环境下搭建的开发框架,使用docker工具分别生成不同环境下的运行程序,现在需要将生成的运行程序文件自动构建打包生成对应操作系统环境下的安装包程序,这里介绍的是linux下打包生成windows安装包,linux版本是,使用的打包工具是。

2024-04-29 10:49:12 992 1

原创 Qt实现仿微信在线聊天工具(服务器、客户端)V1_ 03

上一篇实现了窗口移动以及最大化最小化,本章将要实现与服务器的连接。

2023-04-27 11:28:34 718 1

原创 Qt实现仿微信在线聊天工具(服务器、客户端)V1_ 02

这里可以 参考我的另一篇博客,自定窗口的拖动。

2023-04-24 20:02:34 856

原创 Qt实现仿微信在线聊天工具(服务器、客户端)V1_ 01

在主控类中绑定登录类的信号 void signalLoginOK() ,跳过验证步骤,先实现页面的跳转MyChatToolClient.h文件//登录成功槽函数 private :MyChatToolClient.cpp文件} //登录成功槽函数 void MyChatToolClient :: slotLoginOk() {//关闭登录窗口并释放空间 m_loginWin -> close();//新建并打开聊天窗口 m_chatWin = new ChatWindow;

2023-04-24 18:37:55 1185

转载 Qt信号槽-原理分析

转载一篇关于Qt信号槽原理解析的文章,讲解的很详细,有的地方可能有点深度,不过还是能很大程度上的帮助理解信号槽原理。一、问题moc预编译在干嘛 signals和slots关键字产生的理由 信号槽连接方式有什么区别 信号和槽函数有什么区别 connect到底干了什么 信号触发原理下面我们就分模块来讲述下Qt的信号槽,首先分析下Moc他到底干了什么,如果没有他信号槽还能行吗?接着我们在来分析下最常用的connect函数,最后在看下信号执行后是怎么触发槽函数的?二、Mocq...

2020-11-04 15:48:59 743

原创 Qt学习笔记11:自定义控件增加属性并通过qss设置样式

继承QLabel类实现一个类似于toolbutton的可选控件,有选择和未选择两种状态第一步:首先定义属性这里属性取名“checked”,有两种方式方法一:在设计师里定义点击加号,选择属性类型,这里两种状态,直接使用 bool 类型即可,属性名 checked新增的属性如下图方法二:在代码中定义class LabelButton : public QLabel{ Q_OBJECT Q_PROPERTY(bool checked READ isCh..

2020-10-21 20:57:53 3578

原创 Qt学习笔记10:利用html语法修改一段文本中指定文字的样式

对 Label进行样式设置时,遇到了需要修改其中特定文字的样式,如下这是QQ的好友名和备注信息,备注名深色,原昵称浅色 ,开始时采用两个label拼接的方式在Qt Designer界面设计并预览,感觉效果是对的不过实际运行时,效果还是有偏差,两个label之间的距离变大了在另一篇关于修改Tooltip样式的笔记中,提到了可以用 html 语法来控制和设置控件样式(笔记连接:https://blog.csdn.net/Leo_csdn_/article/detai...

2020-09-07 11:37:06 986

原创 Qt学习笔记9:控件的对齐方式(靠左对齐、靠右对齐、居中对齐、垂直靠上对齐)

Qt组件的集中对齐方式Qt::AlignLeft //水平方向靠左。Qt::AlignRight //水平方向靠右。Qt::AlignHCenter //水平方向居中。Qt::AlignTop //垂直方向靠上。设置方法 ui.widget->layout()->setAlignment(Qt::AlignLeft);AlignLeft 水平靠左 AlignRight 水平靠右AlignTop 垂直靠上...

2020-09-04 15:50:02 33484 3

原创 Qt学习笔记8:利用eventFilter(事件过滤)实现自定义的hover效果

QWidget本身是没有hover属性可以设置的,想要自定义一个hover效果,可以通过eventFilter 来实现,废话少说,先上代码QPopupWgt::QPopupWgt(QWidget *parent) : QWidget(parent){ //setMouseTracking(true); this->setAttribute(Qt::WA_Hover, true);//开启悬停事件 this->installEventFilter(this); /.

2020-09-02 10:07:53 2899 2

原创 Qt学习笔记7:恢复被最小化的窗口

当窗口被最小化到任务栏,想通过自定义事件重新显示窗口,调用 ‘showNormal()’ 方法void reShowWindow(Widget* wgt){ if(wgt->isMinimized()) wgt->showNormal();}

2020-08-27 11:34:29 4345

原创 Qt学习笔记6:修改QToolTip样式

修改Qt的tooltip主要是两种方式修改样式表,或者通过 html 语法控制样式方式一、修改样式表修改样式表可以在Qt Designer里进行编辑也可以在代码中进行设置通过样式表方式设置,使用时需要传入 this 指针,才能使对应的样式表生效! QToolTip::showText(event->pos(), "修改样式", this);方式二、利用‘html’语法设置样式 QString style = "<b style=...

2020-08-13 17:58:58 2425 1

原创 Qt学习笔记5:不规则窗体

1.新建Gui应用,类名自定义(示例为ShapeWidget),基类选择QWidget2.为了使不规则窗体能够通过鼠标随意拖拽,在类中重定义了鼠标事件 mousePressEvent() 、mouseMoveEvent() 以及绘制函数paintEvent()protected: void mousePressEvent(QMouseEvent *); void mouseMoveEvent(QMouseEvent *); void paintEvent(QPaintEvent *);.

2020-05-18 15:34:43 373

原创 Qt学习笔记4:自定义窗口移动事件

通过执行鼠标按下事件响应函数 mousePressEvent(QMouseEvent*)和鼠标移动事件响应函数 mouseMoveEvent(QMouseEvent*)的重定义,实现自定义的鼠标拖拽移动窗口先看一种简单的实现void Demo::mousePressEvent(QMouseEvent *event){ if (event->button() == Qt::LeftButton) { dragPosition = event->globalPos() -..

2020-05-15 18:00:47 2543

转载 努力和家境哪个更重要

这个时代——“寒门再难出贵子”,也许不服,不甘,但想改变好比石头砸天现在越来越看清楚“性格决定命运”,性格这东西是熔透于骨髓的,性格的养成和学校教育没有多大关系,大多决定于家庭背景,和成长环境。。。从大学毕业出来的第一步往往起到至关作用的是家庭背景,也就是从起跑线开始,普通家庭的孩子就输了一大截。。在一个物欲横流的时代,当金钱决定一切,成为人的终极信仰的时候,这时候也是“门阀”,即阶层相应出现的年代。结合我自己近半年来的观察, 我在某商业银行人力资源部上班,去年招了很多学校的实习生(实习并不是正式录

2020-05-15 17:33:28 2784 1

原创 QT学习笔记3:两种显示进度条的方式QProgressBar和QProgressDialog

Qt提供了两种显示进度条的方式一种是QProgressBar,提供了一种横向或纵向显示进度的控件表示方式,用来描述任务的完成情况;另一种是QProgressDialog,提供了一种针对慢速过程的进度对话框表示方式,用于描述任务完成的进度情况。QProgressBar实例 QProgressDialog实例 实例代码.h文件#pra...

2020-05-14 16:22:01 2414 1

转载 C++单例模式

一、什么是单例单例 Singleton 是设计模式的一种,其特点是只提供唯一一个类的实例,具有全局变量的特点,在任何位置都可以通过接口获取到那个唯一实例;具体运用场景如:设备管理器,系统中可能有多个设备,但是只有一个设备管理器,用于管理设备驱动; 数据池,用来缓存数据的数据结构,需要在一处写,多处读取或者多处写,多处读取;二、C++单例的实现2.1 基础要点全局只有一个实例:static 特性,同时禁止用户自己声明并定义实例(把构造函数设为 private) 线程安全 禁止赋值和拷

2020-05-13 17:11:08 2046

原创 QT学习笔记2:可变形的对话框——扩展对话框

Qt常见的可变形的的对话框有两种——扩展对话框和多页对话框。扩展对话框做个简单的示范,在Qt designer里面设计如下,这里为了便于理解,将组件最简单化,设置一个pushButton,放在顶部,一个GroupBox,里面放了两个单选按钮(这里随意)然后设置主窗口为垂直布局然后开始进行真正实现扩展的步骤1.将”更多”按钮的属性中的 checkable 属性勾选上...

2020-04-28 11:08:05 708

原创 QT学习笔记1:widget相关属性设置(窗口透明、无边框等)

设置窗口透明this->setAttribute(Qt::WA_TranslucentBackground); //设置窗口透明设置窗口无边框this->setWindowFlags(Qt::FramelessWindowHint); //设置窗口无边框解决给widget设置颜色无效问题this->setAutoFillBackgro...

2020-04-13 10:25:50 3251 1

原创 VS编译出现“意外的标记位于“;”之前;语法错误 : 缺少“;”(在“*”的前面);缺少类型说明符 - 假定为 int”

在VS编译的过程中,出现了类似于下面的错误反复核对代码并没有发现任何语法问题譬如少了‘;’之类的。查了一些文章发现,这几个报错基本都是同时出现的。情况一多数情况下出现这种问题的原因是因为头文件重复包含,即头文件A包含了B,头文件B又包含了A,导致编译器在加载头文件时陷入死循环。解决办法:修改头文件包含,如果两个文件代码确实紧密关联,建议写到一个文件中。情况二...

2020-04-01 18:05:34 8269 2

原创 MySQL 连接出现 Authentication plugin 'caching_sha2_password' cannot be loaded

项目需要,使用了ODB库操作数据库,当时编译的时候就出现了异常,问题出在mysql版本上,我用的8.0以上的版本的mysql的include,编译不过去,换了个6.0的,编译通了。等到运行的时候,第一步连接数据库就报了Authentication plugin 'caching_sha2_password' cannot be loaded的错误,经过了解,是因为mysql8.0之前的...

2020-03-20 10:17:06 1562

转载 C++使用函数模板出现“无法解析的外部符号”的问题

之前在使用函数模板的过程中,在类里面定义了一个函数模板,按照普通的类的定义方式,将声明放在了.h文件中,将函数体放在了.cpp文件中,然而编译的时候出现了“无法解析的外部符号”的问题。经过对模板的进一步了解,发现-----C++编译器不支持模板的分离式编译。也就是说,当我们声明和定义一个模板的时候,必须要让声明和定义放在一个文件里,否则编译器会报错。下面细说其中的原理首先,一...

2020-03-15 16:18:42 3351 1

原创 Linux安装Postgresql和PostGIS

linux环境是centos7Postgresql版本是postgresql11PostGIS版本是 postgis25_11一、添加PostgreSQL Yum存储库输入命令sudo yum -y install https://download.postgresql.org/pub/repos/yum/11/redhat/rhel-7-x86_64/pgdg-cento...

2020-01-13 09:36:10 2925 1

原创 PostgreSQL的基本使用操作

postgresql的基本使用操作连接数据库psql -h 192.168.1.7 -p 5432 -U postgress -d testdb-h 后面跟地址-p 后面跟端口号-U 后面跟用户名(‘U’要大写)-d 后面跟数据库名注:使用此连接方式连接远程的postgresql,需要安装postgresql的client端切换数据库\c newdb...

2020-01-10 10:52:50 934

原创 MySQL常用函数/关键字

1.distinctdistinct用于返回某个字段去重后的记录+------+--------+-------+| id | name | point |+------+--------+-------+| 1 | 小明 | 100 || 1 | 小红 | 90 || 2 | 小刚 | 80 || 3 | 小军 ...

2019-12-04 17:55:35 746

原创 判断两条线段是否相交以及点是否在四边形内的C++算法

1.判断两条线段是否相交#include <iostream>using namespace std;struct Point{ double x, y;};// 判断两条直线是否相交double determinant(double v1, double v2, double v3, double v4) // 行列式{ return (v1*v4 -...

2019-11-22 17:58:06 1820 1

原创 tinyxml/tinyxml2遍历所有节点

tinyxml是一个操作xml文件的库,它对于xml文件的操作基于节点名,层层迭代,想要使用tinyxml遍历一个xml文件就需要使用循环或者递归的方式,这里给出的是使用递归的方式进行遍历void ShpProcess::GetEleValue(XMLElement * element){ for (XMLElement* currentele = element->FirstCh...

2019-10-30 15:00:03 6915 2

原创 本猿的磨炼之路

程序猿总是为工作而牺牲自己的身体,这怎么行,身体是革命本钱,不然挣那么多钱都送给医院吗我会开始锻炼身体,以保持一个健康的身体和强健的体魄,这样才能更好的工作和生活。会持续更新!希望能够见证我的改变跳转↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓适应周第一周 第二周 第三周 第四周 第五周 第六周 ...

2019-10-29 09:09:14 1511 3

原创 高斯坐标和地理坐标的转换代码

由于项目需要,了解了关于高斯坐标和地理坐标的相关知识,当然也只是略懂,因为需要在代码中实现,因此也在网上搜索了相关资料,在此记录一下这里一共两份高斯坐标与地理坐标转换的代码,各有优缺点代码1这原本是java代码,我略微修改了一下变成C++代码了// 高斯坐标和地理坐标的相互转换class Convertor {public: ~Convertor() {} ...

2019-10-15 16:13:21 2879

原创 C++(21):线程的参数传递——地址传递和引用传递问题

这几天在使用多线程的过程中,遇到了一个问题,就是线程的引用传递原本是想通过引用改变传递进去的参数, 结果发现传递进去的变量根本没有改变,举个栗子void func(int& a){ a = 2;}int main(){ int a = 1; std::thread t1(func, a); cout << a <<...

2019-10-14 11:55:32 1093 1

转载 程序员的职业生涯规划

经常听一些同学说:不知道下一份工作该去哪类公司做些什么,我的职场人际一团糟老板不重视我,我现在成长的非常慢所以又想跳槽了,我看不到公司的发展前景好迷茫,其实这一切的困惑都来源于没有做好职业规划或者你根本就没有职业规划过。那今天我就从以下几个话题和大家分享下我所理解的职业规划 Tips ,也欢迎大家踊跃提问。为什么要做职业规划?我们先聊聊第一个话题,为什么要做职业规划?首先,我们要知...

2019-10-11 16:23:19 10918 2

原创 C++(20):线程池的实现和使用

线程池作用线程池能够减少创建的线程个数,线程池的出现着眼于减少线程本身带来的开销线程池适合场景(1)单位时间内处理任务频繁而且任务处理时间短(2)对实时性要求较高。如果接受到任务后在创建线程,可能满足不了实时要求,因此必须采用线程池进行预创建。实现代码代码来自github上的一位大神,只用一个简单的头文件就实现了线程池:https://github.com/progsc...

2019-10-10 18:04:34 1877 1

原创 C++(19):字符转码UTF8/Unicode/Ascii

字符转码一直是C++编程中的老大难问题,由于不同编码的规则不同,造成中文字符经常出现乱码,这里记录几个常见的字符编码之间的转换代码(C++)UTF-8转Unicodestd::wstring Utf82Unicode(const std::string& utf8string) { int widesize = ::MultiByteToWideChar(CP...

2019-09-12 09:25:58 1993

原创 C++基于libxls库读取xls文件

libxls是一个轻量级的读取excel的xls格式的库,只能读不能写和其配套的还有一个xlslib库,只能写不能读可以根据自己的需求选择使用读取代码:#include <iostream>#include <xls.h>#include <xlsstruct.h>using namesapce std;int xlsrea...

2019-09-06 14:43:46 6526 5

原创 C++(18):获取windows下文件的创建/修改/访问时间

#include <windows.h>#include <stdio.h>//----------- Error Handling Function -------------------void error(LPSTR lpszFunction){ CHAR szBuf[80]; DWORD dw = GetLastError(); snp...

2019-09-03 16:56:28 1925 2

原创 基于GDAL库读写shp文件的C++代码

因为项目需要,学习了解了GDAL读取shp文件的方式,贴出代码以供参考我自己封装的包含shp读写操作的类,并不完整,留下了一些接口,有兴趣或者有需要的可以自己补充完整头文件SHP_RW.h#pragma once#include <gdal.h>#include <gdal_priv.h>#include <ogrsf_frmts.h&gt...

2019-08-19 17:04:29 5539 41

原创 基于GDAL库读取tiff文件的C++代码

这是基于GDAL库读取tiff文件的C++代码,算是比较基础的数据读取,更深层次的运用需要自己去熟悉和理解他的类以及提供的相关接口(代码中也提供了一段输出tfw文件的方式)#include <iostream>#include <gdal.h>#include <gdal_priv.h>#include <streambuf>#...

2019-08-19 16:46:28 9093 6

原创 vs配置GDAL库遇到“ fatal error U1050: PROJ_INCLUDE should be defined. PROJ >= 6 is a required depende”的错误

在windows给VS配置gdal库的时候,根据网上的教程,在进行到nmake /f makefile.vc会直接报错 fatal error U1050: PROJ_INCLUDE should be defined. PROJ >= 6 is a required dependency Stop其实意思就是缺少了 PROJ这个库的支持,分别查看了nmake.opt 和...

2019-07-24 17:14:10 6680 5

原创 Redis的基本操作命令

键(key)基本语法127.0.0.1:6379> COMMAND KEY_NAME示例127.0.0.1:6379> set firstkey redisOK127.0.0.1:6379> get firstkey redis127.0.0.1:6379> del firstkey (integer) 1set 是创建 key 及对应的值...

2019-07-19 16:47:55 261

原创 linux安装Redis

Redis的官方下载地址是http://redis.io/download,可以手动下载最新的稳定版本也可以wget下载wget http://download.redis.io/releases/redis-5.0.5.tar.gz然后解压并编译tar -zxvf redis-5.0.5.tar.gzcd redis-5.0.5make编译结束后进入redis-5...

2019-07-19 15:41:20 140

原创 docker容器开启ssh服务远程连接

这里使用的容器是centos7环境,基本是个比较纯净的环境,几乎什么都没装根据自己需求,先安装一些基本的(容器,默认是root用户)yum install -y net-tools接着安装openssl,openssh-serveryum install -y openssl openssh-server然后启动ssh/usr/sbin/sshd -D这里会报错...

2019-07-16 17:11:32 13052 2

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除