自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 资源 (1)
  • 收藏
  • 关注

原创 QT-创建串口-处理数据-计算串口数据校验和-QByteArray校验和及数据求和

这个方法是QByteArray最后一位数据前边的所有数据for循环加和,求得的和sum为4位的int类型,而校验和一般为1位数据,所以一般只取int的最低位,然后求得的和lastSum和data的最后一位数据比较大小,两个数值相同返回true,表明校验成功。发送过来的数据,存到一个QByteArray之后,可以传入上边的函数进行和校验,返回值为true,则校验成功,false为检验失败,数据不是完整数据,一般校验失败后数据废弃不用。参数设置完成后,需要打开串口,这样才算完成串口的创建。

2023-09-10 23:12:13 1422 1

原创 QT-任意角度动态旋转图片-模拟仪表指针-DynLable类使用说明

开发原理是继承QLable类,利用QPainter进行绘图,任何图片都可以旋转,更适用于仪表指针的模拟旋转,当时主要是为了仪表指针的旋转开发的;新建DynLable::paintEvent(QPaintEvent *)函数,创建QPainter变量,指定父类为this(这样就不用考虑内存问题了);在paintEvent绘图事件中,主要进行的步骤为下边5步:1)平移坐标,2)旋转坐标,3)再次平移坐标,4)绘制QPixmap,5)重置QPainter变量;

2023-09-03 14:01:08 199

原创 QT信号槽-信号重载-QOverload

也就是说人家本来的参数是QString类型的。QOverload就是重载的意思,尖括号里边的,就是将信号的参数重载为int类型,在我们自己写的信号需要重载时,用这种方式也是特别方便,官方给力例子挺好的,用的lambda表达式,我们也可以用常用的专门写一个槽函数的方式,这样在用比较大型的槽的时候比较方便。当信号的参数被重载或者信号参数与槽函数的参数不一致时,需要指定本次connect时信号使用的参数或者将信号使用的参数强转,这就用到了信号重载。

2023-07-30 11:49:10 924

原创 电脑开机后延时启动软件批处理BAT

某些工程设备中,需要在电脑开机后自动运行软件,可以将软件的快捷方式增加到开机启动项中。有时候电脑启动后网络连接慢或其他服务未启动情况下就需要延时几秒钟启动软件,这种情况可以用下边的批处理文件解决问题。最后一步将bat文件或文件的快捷方式,放到系统启动路径下边,开机自启动bat文件,bat会延时10s,然后启动你设置的exe程序。首先,新建一个txt文件,起一个帅气的英文名,然后在txt中输入下边代码,路径和程序名可以换成自己需要的内容。输入好内容后,保存文件,然后重命名,将XX.txt变更为XX.bat。

2023-07-23 15:29:55 4859

原创 QT 改变EXE生成路径,增加EXE图标,指定生成的EXE名称

同样在.pro所在文件夹中放入你要设置的图标的图片,需要.ico格式的图片,有时候用png直接转过去格式不对,需要用ps软件转换一下。RC_ICONS在程序中不一定变色,没关系,编译一下,你就会看到你的图片已经设置到自己生成的exe中了,而且exe自身运行后程序图标也跟着变化了。二、QT生成的exe文件默认图标不好看,根据不同项目需要可能要变更图标,我们同样可以在.pro文件中设置。一、QT生成的exe路径的管理在.pro工程文件中,Pro文件自身路径用$$PWD表示。

2023-07-23 15:13:55 1380

原创 QT实现CRC16校验-(涉及QString 16进制 转QByteArray、QByteArray每一位间隔输出)

在QT中通常将数据转化为QByteArray格式,格式转化过程中会碰到输入一个16进制数,然后发送该数据的情况,例如: EE 80 16 32,用QString获取这样一串数据(数据位之间也可能不包含空格),然后将其字面意思转化为4位16进制数,0xEE 0x80 0x16 0x32,将数据存入 QByteArray中并进行传递数据。就这些,主要描述了通过界面获取数据,实现CRC16校验的全过程,在程序内部直接进行数据转化比从界面获取数据在转换容易很多,所以记录一下这个过程,后边有需要的时候可以翻看。

2023-01-11 23:22:27 3327 1

原创 QT防止程序重复运行-共享内存方式QSharedMemory(学习记录)

建立完成共享内存对象之后,需要利用attach()函数判定该名称的对象是否已经建立,如果已经建立了,说明已经有相同的app在运行了,发出重复运行提醒,退出程序。该过程要在程序自身对象实例运行之前完成。如果未发现相同名称的共享内存对象,则利用create()函数建立共享内存,函数括号内的参数为共享内存的大小,只做判断占用情况用的话,建立最小的内存即可。我们在进行QT开发时,有时会需要防止自己的exe程序启动两次或多次的情况,利用共享内存QSharedMemory的方法,就可轻松解决这个问题。

2023-01-05 22:50:30 1814

原创 批量增加或变更本地IP-适用于局域网和本地调试(学习记录)

为模拟软件运行环境,不同软件需要绑定不同的IP和Port,电脑上端口数量很多不需要费心,而生成多个不同的本地IP往往让人望而却步,需要耗费很大精力。IP修改完成后,可以鼠标右击网卡->“属性”->双击“internet协议版本4(TCP/IPv4)”查看自己的主IP,点击该页面右下角“高级(V)”按钮,在“IP地址(R)”一栏内可以看到我们前边设置完成的所有IP地址。可以用下边bat文件批量生成本地IP,包含一个主IP和多个备用IP,可以在原来IP上重置或添加新IP。完成IP地址批量增加或变更操作。

2023-01-05 22:04:32 1859

原创 QT激活其他程序窗口(学习记录)

该函数可用于QT程序激活其他应用程序或者调用已打开的最小化程序,也可用于变更其他程序的显示方式,ShowWindow的第二个参数。QT激活其他程序窗口,也是用的windows的API,在知道其他窗口名称的情况下(窗口已打开),利用FindWindow找到对应窗口句柄HWND,判断句柄是否为空。利用ShowWindow显示出找到的窗口,利用SetForegroundWindow激活窗口,将焦点设置为激活的窗口。该函数主要利用Windows系统底层API,其他C++语言都可通用,只需变更传入的字符串格式即可。

2022-12-31 21:56:44 1475

原创 QT启动外部程序、运行状态监控、搭建运行环境(学习记录)

和包含启动m_pProcess->start(AA.exe);,外部独立启动时,QT界面的程序输出栏会输出外部程序的调试内容,包含启动方式不显示。QT程序关闭时,包含启动的程序会自动跟随关闭,独立启动的程序仍然会独立运行,无影响。为保持QT程序良好的移植性,可以在程序启动时自动设置临时环境变量,只在QT程序运行时有效,设置完临时环境变量之后再启动m_pProcess。程序启动内部调用cmd启动,直接运行AA.exe,系统无法找到该程序,需指定路径或者将AA.exe路径添加到系统环境中。

2022-12-25 17:52:29 2528

原创 【记录自己的首次CSDN开贴】-关于QT接收串口数据的问题

还有一种方法是一直接收消息并处理,设置while循环或者用waitForReadyRead(msecs),根据最后一次读取数据的时间和现在的时间判断是否超时,通常串口的两包数据之间需要一定的间隔比如上例的Modus/RTU协议,单个字节之间的接收时间超过一定时间差就可以判定这此包数据发送完成,不超时就一直接收并存储到容器或者QByteArry中,超时后跳出循环,这样也可以整包的消息,但是这样接受的消息需要整合处理,并核对帧头帧尾校验位等。仅此 —— 作为首次开贴的纪念。最多每秒接收11.52Kb的内容;

2022-12-22 01:42:58 1180

QT-仪表指针-模拟指针旋转-利用QPainter、QLable、QPixmap旋转图片-模拟仪表指针旋转

本程序基于QT的5.14.2版本开发,debug版本,64位; 原理是继承QLable类,利用QPainter进行绘图; 新建ynLable::paintEvent(QPaintEvent *)函数,创建QPainter变量,指定父类为this,这样就不用考虑内存问题了; 在绘图事件中,主要进行的步骤为下边5步: 1)平移坐标,2)旋转坐标,3)再次平移坐标,4)绘制QPixmap,5)重置QPainter变量; 使用说明: 1)文件中包含.h、.a、.dll这三个文件; 2)将资源中的.h头文件加载到待使用的项目中; 3)将.a静态文件添加动态库形式添加到项目中,项目名右键-添加库-外部库-选择.a文件和路径; 4)上述3步就将动态库添加完成,就可以使用了,在待使用类的.h文件中,添加#include "dynlable.h"; 5)new出对象,传入参数,并show出来; 详细的使用说明见下边博客: https://blog.csdn.net/qq_28178271/article/details/132647646?spm=1001.2014.3001.5502

2023-09-03

CRC16的demo程序-QString类型16进制转换为ByteArray-每两位数据增加空格

可以获取textEdit上的QString类型16进制数转换为ByteArray; 输入数据错误判断及提示; CRC16校验计算公式; 计算ByteArray的crc16结果; 结果转换为QString,并且每两位数据都需要增加空格展示; 输入清除功能; 程序内容说明详情: https://blog.csdn.net/qq_28178271/article/details/128651784?spm=1001.2014.3001.5502

2023-01-13

QT生成dll供其他程序调用-源码示例-qtwinmigrate

需要QT程序生成dll供MFC或C#调用时,可以参考qtwinmigrate文件。 生成的dll仅供QT调用的话,不需要参考此内容。 当QT程序中包含界面或者信号槽时,生成的dll不能直接被其他程序调用,因为QT 必须有调用 QApplication 的 exec 方法,这样才能产生消息循环,信号与槽才能连接起来,界面才可以不断被刷新,这样QT 的dll才可以运行,否则只是执行一遍程序然后中断,没有信号槽、界面一闪而过,不会正常运行。 主要内容是增添了DllMain 函数(windows 动态库的入口函数) ,然后创建QApplication 并exec。 可以参考路径:qtwinmigrate\examples\qtdll\ 。 资源还包含了MFC等源码。 需要qtwinmigrate.pri的,可以在路径:qtwinmigrate\src\qtwinmigrate.pri,提供支持。

2022-12-26

空空如也

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

TA关注的人

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