- 博客(337)
- 资源 (118)
- 收藏
- 关注
原创 Qt编写测试类项目时涉及到测试流程的小结
用Qt编写一些涉及到步骤类的程序,例如,有这样一个需求,用程序去控制程控一台电源,反复给一块带测试的板卡上下电,检查被测板卡能否正常启动(正常启动的标志,是通过网口能否ping通)。第三个思路,是直接在界面按钮的【开始测试】里写步骤流程,你会说那不会把GUI给耗死嘛,是的,自己写一个这样的延时Sleep函数,让它自己去卷吧,反正GUI界面不卡就行!首先考虑到使用多线程,但是多线程有一件麻烦事,就是“跨线程调用”,但是又肯定在线程里去处理网口、文件等的读写,没有什么好的解决办法;
2022-11-26 22:47:52
136
1
原创 Qt的多窗口程序中子窗口大小位置管理
2、处理 MainWindow::resizeEvent事件,见下面的注释,可以自己调整子窗口的起始位置,比如想要横平铺,form1的x=0,y=0,form2的x=w/2,y=0即可,宽高也要适应MainWindow的大小。1、子窗口的创建及显示:假设有两个子窗口,form、form2,在MainWindow构造函数中,
2022-11-18 19:17:39
736
原创 Qt的qApp->quit和QMessageBox一块踩过的坑
项目中使用MainWindow框架基础上做开发,在MainWindow的构造函数中,需要做各种资源、配置、外设等的的初始化,如果不成功,给出弹窗提示报错,应该直接退出程序。按照网上搜索,Qt的程序在任意处想要退出使用了qApp->quit,发现该操作并不是真正的退出,后续程序继续执行,如果调用了MessageBox,会导致MessageBox闪退。在窗体MainWindow构造函数中正确的退出程序方法:即便如此,还需要检查任务管理器中(Windows平台),程序是否真正退出。
2022-11-18 10:32:34
298
原创 Qt的QSlider一边更新滑块进度,一边使用滑块数值的冲突解决
在项目中,使用QSlider,需求是:一边拖动slider读取滑块位置去设置一个处理的起始进度(读取),一边从处理的进度中送上来的值,来更新slider的滑块位置(写入),这两个操作应该是互斥的,否则用户在拖动slider滑块时,又被送上来的值更新,滑块位置变来变去,体验非常不好。这个问题的解决思路:从一个处理中送上来的值,不要直接更新slider滑块,而是去更新一个数值类型的全局变量。把更新slider的动作放到一个定时器中,靠定时器的开启和关闭来决定什么时候更新滑块的进度。
2022-11-16 11:41:07
305
原创 Qt的QProgressDialog使用两条总结(去掉帮助和关闭、设置尺寸)
【代码】Qt的QProgressDialog使用两条总结(去掉帮助和关闭、设置尺寸)
2022-11-14 16:15:51
632
原创 Qt如何QProgressDialog如何屏蔽按键Esc及空格键
"\u001B"就是27,即Esc的键值。由此看出,按键Esc首先触发的是“QEvent::ShortcutOverride”,因此,不能仅简单的处理KeyPress事件。2、子类cpp实现:(这里仅屏蔽Esc,空格键类似,自己添加即可)
2022-11-14 15:07:20
442
原创 qt中基于控制台的程序,如何实现套接字信号-槽方式的接收?(使用lambda语法)
一般认为,qt中传统的【信号-槽】都是配合类一起使用的,如果仅仅写一个简单的基于控制台的测试程序,如何实现呢?这里以QUdpSocket为例,在控制台程序中使用lambda语法将接收处理函数直接写在【信号-槽】里,好处是简化了设计,不好是语法晦涩难懂,但一定抛砖引玉://创建udp套接字QUdpSocket *udpSocket = new QUdpSocket();udpSocke...
2019-09-19 18:14:35
984
原创 Linux下有用的 myprintf 函数
输出如:2019-09-09 18:29:30:391 [test1.cpp-> myprintf-> L34] hello: 8898,即带了精确到毫秒级时间的printf,对调试时序逻辑的程序非常有用(如多线程时序同步),用法和普通的printf一样:#include <sys/time.h>#include <time.h>#inclu...
2019-09-19 17:57:57
276
原创 opengl编程指南第9版源码编译注意事项
1. 到:https://github.com/openglredbook/examples 下载完全版的源码examples-master.zip,大小有131MB左右,不要下载缩略版的,否则\bin\media里面会缺少一些资源文件,无法实现文章中的一些功能;这里百度盘备份了一份:https://pan.baidu.com/s/18NMwFfFZRl-3Dp317hrBag2. 编译会用到...
2019-01-06 11:52:57
1808
1
原创 ffmpeg编程:读取摄像头信息,保存为裸yuv420p、yuyv422视频流
1. 源码下载:https://download.csdn.net/download/dijkstar/108984622. 编程环境使用Windows下的QT5.11 minGW32,源码中已经放好了fmpeg的bin、include、lib;3. yuv420p:指的是 【planar YUV 4:2:0, 12bpp】,一帧图像的大小为1.5倍的长×宽;它的存放位置见源程序描述...
2019-01-05 22:49:57
3031
1
原创 QT5编译和使用QFTP记录(qt5.11.2 mingw53_32环境)
1. 下载qtftp工程的源码:https://pan.baidu.com/s/1GQZHOwVBke0EgiH_0LVMJQ,并解压;2. 下载ActivePerl5_64:https://pan.baidu.com/s/1IyGA558PT8xAut4pLGUSWQ3. 编译qtftp源工程:进到刚刚解压的qtftp目录,在命令行cmd中:C:\Qt\Qt5.11.2\5.11.2\m...
2019-01-04 21:19:25
1347
2
原创 右键添加cmd命令行
用记事本编辑一个下面内容的文件,文件名就叫“cmd右键打开.reg”:Windows Registry Editor Version 5.00[HKEY_CLASSES_ROOT\folder\shell\cmd] @="CMD右键打开"[HKEY_CLASSES_ROOT\folder\shell\cmd\command] @="cmd.exe /k cd %1"双击这个...
2019-01-01 09:32:10
645
1
原创 squeeze函数的意义?
matlab或者numpy中squeeze函数的意义:去掉矩阵中维数为1的条目,注意会减低矩阵的维数,但不会减少元素的数目。以matlab举例:x(2,3,4)=100; % x是一个三维的数组size(x)ans = 2 3 4若:y=x(2,2,:) % 取出x的第二行、第二列上的所有元素,赋值给数组y,注意y的维数仍为3size(y)ans...
2018-09-14 23:16:51
3351
1
原创 Qt在编译程序时,出现“ has modification time int the future”错误的解决方法。
如题,是当前的计算机日期没有设置正确,使用命令设置好日期时间即可: date -s "2018-07-07 12:12:09"
2018-08-30 11:13:26
11227
1
原创 CentOS6.6通过yum升级gcc/g++至版本4.8.2(最简易方式)
近日在一台CentOS6.6的机器上成功安装了QT5.7,但在编写测试程序时,发现无法识别“gun++11”语法,检查当前CentOS6.6的gcc版本为:4.4.7[root@123 bin]# gcc -vUsing built-in specs.Target: x86_64-redhat-linuxThread model: posixgcc version 4.4.7 20...
2018-08-30 11:09:07
12185
3
原创 tcp发送不“粘包”的处理(qt和linux)
当使用tcp套接字发送一个很小的数据块时,接收方并不会立即收到,而是等到积累到一定字节后,套接字才会触发相应的接收处理,这种情况并不是我们想要的。我们所需要的是立即响应接收,因此要在发送端做些设置:若使用qt,可直接使用qt库提供的设置方法://socket 是 QTcpSocket 类型的指针socket->setSocketOption(QAbstractSocket::Lo...
2018-08-24 22:31:21
1680
2
原创 嵌入式web服务器shttpd(1)——编译安装
1. 简介:shttpd是一款小型的web server(相比较Apache),但功能却特别丰富,支持CGI、SSL、MD5认证、cookies,不需要配置文件,纯c打造,把需要的功能编译为一个静态库(.a文件),非常适合应用在嵌入式设备中。这个章节介绍如何在Linux(centos)下编译本身及example文件,后面还会介绍与JQuery easyUI相结合如何使用。使用的版本为s...
2018-08-23 16:55:35
5570
1
原创 CentOS 7.2(1511) 内核升级记录
1. 查看当前centos及内核版本:[root@localhost ~]# uname -srLinux 3.10.0-327.el7.x86_64[root@localhost ~]# cat /etc/redhat-releaseCentOS Linux release 7.2.1511 (Core) 2. 启用ELRepo第三方仓库,可以将内核升级到最新版本:[...
2018-08-21 16:43:32
1572
1
原创 linux修改POSIX消息队列(msgqueue)的各项限制(最大内存、msg_max、msgsize_max、queues_max)
1.进入 目录 /proc/sys/fs/mqueue/,查看各项消息队列的默认max设置:[root@localhost ~]# ls -l /proc/sys/fs/mqueue/total 0-rw-r--r-- 1 root root 0 Aug 20 23:04 msg_default-rw-r--r-- 1 root root 0 Aug 20 23:04 msg_max...
2018-08-21 14:04:13
8324
原创 QT如何处理在网络或内存中传输含有中文的字符串问题?
大家知道,一个含有中文的字符串,比如“中国你好ABC”,在计算机内存储或者传输,最终转换为二进制数据,那么这个中文字符串在QT中,是如何存储、传输、并恢复的呢?首先,为含有中文的字符串指定编码,这里指定为“UTF-8”,或者尝试“GB2312”//char *codeName="system"; //在Windows上,system就是GB2312//char *codeName="...
2018-08-21 11:39:17
744
原创 QT5处理 json 总结
1. 假设生成这样的json结构,并将其写入文件:{ "北京市": { "区1": "平谷区", "区2": "海淀区", "区3": "朝阳区" }, "广西壮族自治区": "待续", "河北省": { &q
2018-08-21 10:15:59
4454
1
原创 matlab的帮助文档内容,如何复制?
在matlab的cmd中使用:doc fft,出现的帮助文档里,发现无法使用【ctrl+c】来复制里面的代码,其实matlab的帮助文档使用linux复制语法:复制为【Ctrl+Insert】。...
2018-08-20 13:33:33
2319
1
原创 QT中多个相同的控件如何用代码方式成批的添加?
使用QT编程,假设有这样的需求:向Widget窗体中添加30个按钮(QPushButton),如何用代码实现呢?有两种方法,一种是:添加:for(i=0; i<30; i++){ QPushButton *bt=new QPushButton(QString::asprintf("Button%d", i+1), ui->widget);//注:最后一个参数一定...
2018-08-20 11:27:17
4987
2
原创 在Linux中使用文件系统NTFS和exFAT的小结
1. 在linux中读写NTFS格式需要内核支持:① CONFIG_NTFS_FS:#应当设置该选项,这是Linux的内核支持ntfs格式,但该选项只支持NTFS的“读”,不支持“写”;② CONFIG_FUSE_FS:#需要设置该选项(FileSystem in Userspace),下面要用到,安装ntfs-3g项目(网上有很多资料),使用这个项目可读可写NTFS格式的文件。在
2017-04-28 11:03:34
18893
原创 Linux的消息队列,Windows的邮件槽,使用有感
在Linux环境下面,经常使用“消息队列”(mq_open、mq_send、mq_receive等),它非常好用,因为现在的工作中经常处理多线程,要处理好多线程,免不了要有“排队”的处理,上述的消息队列可以很好的实现FIFO类型的队列操作。Linux这么好用的消息队列,在Windows使用有对应呢?答案有:邮件槽,下面来看一个具体的示例,客户端线程快速将数据压入“队列”,服务器线程慢速
2017-04-02 11:04:03
1302
原创 vxWorks6.8开启telnet服务的过程记录
记录vxWorks6.8开启telnet Server的过程:1. 在Kernel Configuration中添加下列组件,如图所示:(注:上述的LOGIN_PASSWORD的内容为"RQcRcRSS9e",输入时需要带上双引号,一个符号都不要错,它对应的明码是"123456789")好了,重新编译生成vxWorks镜像工程文件,引导启动;2. 在Windows端使用
2017-03-01 13:48:35
4645
原创 vxworks6.8中加载一个.out时,显示__frameinfo_add等的警告信息解决
如题,当ld加载一个.out下载类型的可执行文件时,显示如“__frameinfo_add”、“__frameinfo_del”、“__div64”的警告,解决:把编译平台由“XXXXdiab”换成“XXXXgnu”
2017-03-01 10:20:59
1735
原创 qt在GUI显示时,将调试信息输出到控制台的设置
1. 在.pro文件中添加一下设置:CONFIG += console2. 项目的【构建和运行】中,需要勾选【Run in terminal】:
2017-01-31 22:40:09
4723
原创 对线程函数数组、函数指针数组在应用中的一些总结
在工作中遇到这样的一个问题:假设有1000个串口的数据需要接收并处理(串口的个数极端一些,目的是好说明问题),以Windows下的VC为例,一般的每一个串口接收都对应一个接收并处理函数,是不是需要写1000个这样的函数?这是第一个问题。如果每一个串口的接收处理函数都基本相同,唯一不同可以从传递进来的参数,在做接收处理时用该参数区分开来,那么是否可以将这1000个函数写成一个“共用”函数?这是第二个
2016-09-25 11:31:18
742
原创 用DirectShow写一个“合并左右声道”的Filter实现小结
因工作关系,需要完成将两个音频采集设备,同时进来的两路立体声,分别抽取每一路中的一路,合并成一个立体声声源,合并后的左、右声道分别是两路立体声的一路,原理图如下:
2016-09-08 14:42:21
1121
原创 C语言中的sprintf函数使用记事
发现sprintf函数还可以“”对自己“”格式化:char str[1000]={0};sprintf(str, "%s\r\n", "hello.cpp");sprintf(str, "%s%s\r\n", str, "Tiny.cpp");sprintf(str, "%s%s\r\n", str, "Thanks.cpp");printf(str);输出:hello.cpp
2016-07-02 19:58:16
1211
原创 STL的string如何使用UNICODE?
#include "stdafx.h"#include "TestCmd.h"#ifdef _DEBUG#define new DEBUG_NEW#endifCWinApp theApp;using namespace std;#ifdef _UNICODE#define tstring wstring#else#define tstring string#endi
2016-05-08 20:49:24
1742
原创 Linux设备驱动remap_pfn_range() 和remap_page_range()
LDD3的开发环境推荐的是2.6.10,安装了RHEL4-update4,其内核版本为2.6.9.42,编译mmap的程序时报错:Unknown symbol remap_pfn_range在网上查了下,应将上述报错的函数改为remap_page_range,并且remap_page_range不再推荐使用了,两个内核函数第二个参数定义不相同:int remap_page_range(st
2016-05-08 20:26:20
4471
原创 linux设备驱动编程环境的搭建小结(结合LDD3使用)
1. 学习Linux设备驱动程序,肯定少不了LDD3,但该书使用的内核版本2.6.10,目前的linux发行版都比这个版本高不少,使用高内核版本的发行版,编译LDD3,有很多错误。这里使用RHEL4-update4版本,其内核版本为2.6.9.42,在百度盘下载:http://pan.baidu.com/s/1bo8gWd52. 虚拟机使用的是:VMware-workstation-f
2016-05-07 19:01:36
1659
原创 MFC的CArray排序小结(结合std::sort)
MFC的CArray非常好用(相对于C/C++的静态数组),但无法根据某个成员排序。下面是结合std::sort一块实现的CArray排序,废话少说,直接上程序干货:#include "stdafx.h"#include "Test.h"#include #ifdef _DEBUG#define new DEBUG_NEW#endif//// 自定义的数据结构//typ
2016-05-07 18:07:27
7220
原创 VS2008高版本VC使用微软串口控件mscomm小结
在VS2008中使用mscomm的文章有很多,这里把关键的几处小结一下:1. 最好安装一遍VC++6.0,因为mscomm控件在VC6中是自带的。装好了VC6,在VS2008中就可以直接使用mscomm了;如果不想安装VC6的,那么直接到这里下载mscomm控件,直接运行里面的批处理文件注册;2. 在VS2008中使用该控件的方法:选择菜单【工具】--选择工具箱项--COM组件--
2016-05-07 17:41:36
6064
1
原创 DirectShow中的工具GraphEdit使用小结
一. 安装完Windows SDK 7.0或7.1后,在C:\Program Files\Microsoft SDKs\Windows\v7.0\Bin下有32位的graphedt.exe,及x64目录下有64位版本的graphedt.exe,当使用任何一个版本不正常的行为时,换成另一个版本试试;二. 在Win7下,GraphEdit的【Connect To Remote Graph】
2016-04-10 15:19:45
7781
转载 putty(pietty)连接时响应慢解决方法
openssh会在用户登录的时候验证IP和主机名是否对应,如果启用了DNS进行检测,而此时并不存在DNS服务器,则会出现连接响应慢的现象。解决方法:1.修改 /etc/ssh/sshd_config文件,添加或者修改一行:UseDNS no2.重启sshd服务:(在有些参考中执行#service sshd restart命令“,因为是CentOS”;但在我但机器上此命令执行时会出现,所
2016-03-27 13:50:17
3431
WinXP DDK 2600
2015-01-31
DJGPP(32位的DOS)访问PCI9054
2015-01-17
IRIG-106的文档(2013版)和测试程序及源程序
2014-12-07
WRK-v1.2源文件及VS2008工程设置
2014-09-21
驱动层和应用层交互事件
2014-09-14
2048游戏的VC++实现,分为控制台和对话框两种
2014-06-22
InstallShield6安装工具和chm使用教程
2014-06-15
vc下groupbox和按钮自绘
2014-06-01
SNTP客户端VC源程序,基于PJ Naughter
2014-04-07
验证WD_Sleep函数
2014-03-30
微软串口控件mscomm使用高波特率VC示例程序
2014-03-14
2、4、8、16、24、32位图解析显示
2014-03-09
VC工程清理工具(含源码)
2014-03-02
Xilinx ISE11.1的跑马灯程序,基于Spartan-3AN
2014-02-08
TI的1394OHCI资料整理备份
2014-01-29
ARINC429资料(英贝特HT6302应用Demo及说明书)
2014-01-11
Condor BusTools-1553-API
2013-10-20
《CLR via C#》非托管代码互操作性提到的P/Invoke Interop Assistant
2013-10-16
百合电子的开源项目Easy USB 51 Programer手册
2013-08-27
djgpp203,保护模式的DOS
2013-08-27
allegro 422 游戏包
2013-08-27
Paragon_ExtFS_Windows_42651.rar
2019-06-12
ffmpeg编程读取摄像头信息,保存为裸yuv420p、yuyv422视频流
2019-01-05
用过最好用的C/C++/STLchm格式的帮助文档
2015-09-27
DLL导出自定义消息通知exe执行
2015-09-27
StartIO上机实践
2015-04-06
Programming the Windows driver model中文版chm和第二版光盘源码
2015-01-31
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人