自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(28)
  • 资源 (12)
  • 收藏
  • 关注

原创 QT 之DOM方式解析XMLzwg

DOM是Document Object。

2023-11-15 20:47:35 195

原创 QT 界面组件模型 BoxModel

QT 组件盒子模型

2023-01-14 16:14:45 433

原创 QListWidget 设置样式表后QListWidgetItem调用setBackgroundColor无效解决办法

法1.去掉QSS完全用成员函数设置item;其实QT 的QSS是一个强大而又方便的特性!法2.完全用QSS在两处设置item;

2023-01-11 22:20:36 1637 1

原创 QT 样式表之选择器(一)

QT 样式表选择器剖析

2023-01-07 18:20:34 285

原创 QT 资源系统的使用心得

QT 资源系统理解

2023-01-06 22:12:41 180

原创 Qt Designer中 加入资源文件

QT QRC文件 资源文件

2023-01-06 21:10:00 965

原创 再谈 QtDesigner 可视化连接信号 槽

Qt Designer 可视化编辑信号槽

2022-12-28 10:09:32 1314

原创 QObject线程依附性以及QT多线程

QObject以及多线程

2022-12-26 15:33:40 459 1

原创 Q_DECLARE_METATYPE 的应用场景

QT功能很强大,但如果不了解其特性,在使用中就不能发挥出其强大的特性,如Q_DECLARE_METATYPE 元对象系统。

2022-11-27 16:59:30 325

原创 Q_ENUM的作用以及QMetaEnum的优势

传统的枚举类型 在增加程序可读性方面还不够,而QT中的QMetaEnum做了很大的优化,功能很强大。

2022-11-27 11:11:18 894

原创 QT+VS2017 下LNK2001: 无法解析的外部符号(隐蔽的问题)

VS QT LINK 2001

2022-09-11 21:23:52 575

原创 Libmodbus 的下载与编译

Libmodbus 编译与下载

2022-09-10 10:42:39 1646

原创 程序快捷开发(二) 动态库与静态库

代码重用 动态库 静态库

2022-09-07 11:38:01 356

原创 程序开发捷径(一 ) 属性表

VS 程序开发捷径之一

2022-09-07 09:46:31 270

原创 深入理解Modbus通讯

Modbus

2022-09-04 17:14:42 2900

原创 QT 之序列化反序列化

QT 数据读写

2022-08-14 12:25:11 2140

原创 MFC框架剖析

创建MFC窗口需要用来的类:CWinAppCFrameWndCWinApp是一个基类,你通过它来继承Windows应用程序对象。应用程序对象为你提供了初始化应用程序(以及它的每一个实例)和运行应用程序所需的成员函数。每个使用微软基础类库的应用程序都只能包含一个从CWinApp继承的对象。当Windows调用WinMain函数时,这个对象在其它C++全局对象都已经生成并且可用之后才被创建,WinMain函数是由微软基础类库提供的。将你的CWinApp对象定义为全局的。当你从CWinApp继承

2022-04-11 14:41:05 2151

原创 C++继承时的名字遮蔽

如果派生类中的成员(包括成员变量和成员函数)和基类中的成员重名,那么就会遮蔽从基类继承过来的成员。所谓遮蔽,就是在派生类中使用该成员(包括在定义派生类时使用,也包括通过派生类对象访问该成员)时,实际上使用的是派生类新增的成员,而不是从基类继承来的。范例#include<iostream>using namespace std;//基类Peopleclass People{public: void show();protected: char *m_nam

2022-03-31 14:16:10 90

原创 C++ 虚函数详解

虚函数对于多态具有决定性的作用,有虚函数才能构成多态规则1) 只需要在虚函数的声明处加上virtual 关键字,函数定义处可以加也可以不加2) 为了方便,你可以只将基类中的函数声明为虚函数,这样所有派生类中具有遮蔽(覆盖)关系的同名函数都将自动成为虚函数3) 当在基类中定义了虚函数时,如果派生类没有定义新的函数来遮蔽此函数,那么将使用基类的虚函数4) 只有派生类的虚函数遮蔽基类的虚函数(函数原型相同)才能构成多态(通过基类指针访问派生类函数)。例如基类虚函数的原型为virtual vo.

2022-03-31 14:05:31 836

原创 C++ 虚函数/纯虚函数/抽象类/接口

虚函数定义一个函数为虚函数,不代表函数为不被实现的函数;定义他为虚函数是为了允许用基类的指针来调用子类的这个函数。class A{public: virtual void foo() { cout<<"A::foo() is called"<<endl; }};class B:public A{public: void foo() { cout<<"B::foo() is called"<<endl; }};int ma

2022-03-29 21:54:14 3223

原创 dll剖析--->导出类

前面介绍了怎么从DLL中导出函数和变量,实际上导出类的方法也是大同小异,废话就不多说了,下面给个简单例子示范一下,也就不多做解释了。DLL头文件:#ifndef_DLL_SAMPLE_H#define_DLL_SAMPLE_H//通过宏来控制是导入还是导出#ifdef_DLL_SAMPLE#defineDLL_SAMPLE_API__declspec(dllexport)#else#defineDLL_SAMPLE_API__declspec(dllimport)#...

2022-03-27 22:38:35 619

原创 dll剖析--->导出变量

声明为导出变量时,同样有两种方法:第一种是用__declspec进行导出声明#ifndef_DLL_SAMPLE_H#define_DLL_SAMPLE_H//如果定义了C++编译器,那么声明为C链接方式#ifdef__cplusplusextern"C"{#endif//通过宏来控制是导入还是导出#ifdef_DLL_SAMPLE#defineDLL_SAMPLE_API__declspec(dllexport)#else#defineDLL_SAMPL...

2022-03-27 22:33:47 408

原创 dll 剖析--->使用|查找|调试

当一个DLL被生成后,它创建了一个.dll文件和一个.lib文件;这两个都是你需要的。要使用DLL,就需要载入这个DLL。隐式链接这里有两个方法来载入一个DLL;一个方法是捷径另一个则相比要复杂些。捷径是只链接到你.lib 文件并将.dll文件置入你的新项目的路径中去。因此,创建一个新的空的Win32控制台项目并添加一个源文件。将你做的DLL放入你的新项目相同的目录下#include"stdafx.h"#include"DLLSample.h"#pragmacomment(lib,...

2022-03-27 22:27:47 2424

原创 dll 剖析--->创建

动态链接库(DLL)是从C语言函数库和Pascal库单元的概念发展而来的。所有的C语言标准库函数都存放在某一函数库中。在链接应用程序的过程中,链接器从库文件中拷贝程序调用的函数代码,并把这些函数代码添加到可执行文件中。这种方法同只把函数储存在已编译的OBJ文件中相比更有利于代码的重用。但随着Windows这样的多任务环境的出现,函数库的方法显得过于累赘。如果为了完成屏幕输出、消息处理、内存管理、对话框等操作,每个程序都不得不拥有自己的函数,那么Windows程序将变得非常庞大。Windows的发展要求允许同

2022-03-27 22:22:35 104

原创 C++ 工厂模式/抽象工厂剖析

正文在面向对象的编程中,一般通过继承和虚函数来提供抽象能力,多态让程序在执行期,调用者只需要看到父类类型,而不需要关心继承的子类类型。举个例子: 比如有个游戏,里面的游戏的活动对象为动物,比如有老虎和猫,会对主人公进行攻击。那么可能会实现为如下:代码如下:class Animal { public: virtual void Attack() = 0; }; class Tiger : public Animal { public: virtual void At..

2022-03-26 15:35:58 229

原创 QTcpSocket自动重连题 难道QTimer 还有坑?

QT socket 自动连接 QTimer 频繁开关不进槽 有坑?

2022-01-02 09:54:15 695

原创 刻骨铭心 的QT 线程死锁

直接上代码,直观明了。总结在此,避免再次踩坑。//1.锁的作用域过大引起的死锁////如果异常根源处的大括号不启用,调用stop()时,锁一直被占用,因为m_bRuning一直为true,死循环。此处等待m_bRuning为false;而根源相关处等待锁释放,才能将m_bruning置为false;一处等待m_bruning置为false;才能释放锁;一处等待锁释放,才能将m_bruning置为false; 相互等待,最终死锁!void StationBThread::stop(){.

2021-08-15 19:11:40 3042

原创 2020-10-11

抽象类的存在意义是什么?1、必须集成的属性方法用抽象方法, 非必需的用接口;2、接口是规范是协调与其它类的方法交互的一种协议准则;3、抽象方法必须是Public的;4、想要了解抽象类,只需记住抽象方法的应用场景就行了;5、抽象方法是定一种或者一类事物必须有的一种技能,但是这种技能的表现形式对于各个继承者的表现形式不一样,就把它定义为抽象方法。因为抽象方法必须存在抽象类,所以把普通父类定义为抽象类;6、为什么不定义为普通父类的virtual方法呢?因为普通父类的virtual方法子类不一定非要重

2020-10-11 16:57:39 58

MFC快捷键操作

自动化开发是经常需要一个外部输入,但界面菜单或按钮已经排布完毕,此时用快捷键很合适,也可以隐藏此功能对于不相关的人员。

2018-05-20

MFC经典价架构

自动化开发是经常需要一个线程实时扫描外部IO信号,创建一个线程专用于此,可以实时获取信号状态,并及时作出相应的处理,提示或响应。

2018-05-20

空压机 实例

空压机实例,具体实施方案,非常实用。空压机实例,具体实施方案,非常实用。

2013-08-12

空压机PLC控制方案

空压机PLC控制方案

2013-08-11

数字电子技术11

数字电子技术

2013-07-22

数字数字电子技术

数字电子技术

2013-07-22

300语句表手册

300编程应用

2013-05-14

RS485实用技术

485通讯实用技术。485通讯实用技术。485通讯实

2013-04-19

通讯应用专题

各类通讯比较,各类通讯比较,各类通讯比较,各类通讯比较,

2013-04-19

变频器应用

变频器行业应用

2013-04-19

空空如也

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

TA关注的人

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