Qt 降低程序CPU占用率
摘要:发现自己的程序CPU占用率奇高:达到百分之五十多!按照网上的说法,原因有以下几点:1、在paintEvent中调用update函数,造成无限循环2、频繁刷新数据3、复杂的浮点运算4、死循环5、paintEvent里操作太多我的程序是通过网络每秒一次读取下位机数据,并调用Qcustomplot绘图,并
阅读全文
posted @
2021-04-14 09:33
一杯清酒邀明月
阅读(1268)
推荐(0)
Qt 程序CPU占用率较高的解决办法
摘要:分析思路 总的来说,Qt程序CPU占用率较高的原因可能有以下几点: 1、在paintEvent中调用update函数,造成无限循环2、频繁刷新数据3、复杂的浮点运算4、死循环5、paintEvent里操作太多 我遇到这个问题的程序是利用多个子线程(接收子线程)同时接收并解析网口的数据,同时另外一个子
阅读全文
posted @
2021-04-14 09:32
一杯清酒邀明月
阅读(3348)
推荐(0)
Qt 文件夹不存在,创建文件夹,文件不存在,创建文件
摘要:1 ```cpp 2 QString runPth = QDir::currentPath(); 3 runPth += "/Config"; 4 QDir dir(runPth); 5 if(!dir.exists())//判断文件夹是否存在,不存在创建文件夹 6 { 7 dir.mkdir(ru
阅读全文
posted @
2021-04-12 09:57
一杯清酒邀明月
阅读(1862)
推荐(0)
Qt 一个信号对应多个槽,多个信号对应一个槽的执行顺序
摘要:前言:Qt独创的信号槽机制,不仅可以一个信号连接一个槽,而且可以一对多或多对一。这其中存在两个最基本的问题:1.一个信号对应多个槽时,槽函数的执行顺序是怎样的???2.多个信号对应一个槽时,如何在槽函数中判断信号的发出者是谁(来自哪个类的对象)? 下面对这两种情况分别进行验证:实例演示1:对一个信号
阅读全文
posted @
2021-04-09 14:20
一杯清酒邀明月
阅读(9447)
推荐(1)
Qt QSignalMapper(信号映射器)
摘要:QT中通过信号/槽机制,将信号与槽函数关联。有时候希望获得信号发送者信息,QT提供了QObject::sender()函数来返回发送该信号的对象的指针。但是如果有多个信号关联到了同一个槽上,而在该槽中需要对每一个信号进行不同的处理,使用上面的方法就很麻烦了。对于这种情况,便可以使用QSignalMa
阅读全文
posted @
2021-04-09 14:14
一杯清酒邀明月
阅读(907)
推荐(0)
Qt 多个信号关联同一个槽函数
摘要:背景:多个信号需要执行同一个函数或者一类函数的时候,可以选择每个信号创建一个槽函数去实现功能,如果直接关联到一个函数中,该函数只能执行一份功能,有时候并不能满足业务需求 在多个信号绑定到同一个槽函数的状态下,让槽函数根据绑定的不同的信号执行不同的功能有两种方法: (1)在槽函数中获取到sender对
阅读全文
posted @
2021-04-09 14:12
一杯清酒邀明月
阅读(1761)
推荐(0)
Qt C++ new一个对象的,加括号和不加括号的区别
摘要:结论 1.加括号调用没有参数的构造函数,不加括号调用默认构造函数或唯一的构造函数,看需求 2.C++在new时的初始化的规律可能为:对于有构造函数的类,不论有没有括号,都用构造函数进行初始化;如果没有构造函数,则不加括号的new只分配内存空间,不进行内存的初始化,而加了括号的new会在分配内存的同时
阅读全文
posted @
2021-04-09 13:55
一杯清酒邀明月
阅读(793)
推荐(0)
Qt QWaitCondition 的正确使用方法
摘要:简单用法QWaitCondition 用于多线程的同步,一个线程调用QWaitCondition::wait() 阻塞等待,直到另一个线程调用QWaitCondition::wake() 唤醒才继续往下执行。 为了描述方便,这里假设主线程调用Send()往通信口发送一个数据包,然后阻塞等待回包才继续
阅读全文
posted @
2021-04-09 10:58
一杯清酒邀明月
阅读(2236)
推荐(1)
Qt 事件发生的先后顺序
摘要:Qt事件发生的先后顺序: 1.子类化QApplication并且重新实现notify(); 2.在QApplication对象中安装事件过滤器; 3.在QObject中安装事件过滤器; 4.重新实现QObject::event(); 5.重新实现某些特定的事件(如paintEvent等).
阅读全文
posted @
2021-04-09 10:31
一杯清酒邀明月
阅读(303)
推荐(0)
Qt 事件优先级
摘要:优先级从高到低如下: (1)QWSEvent事件队列 (2)posted QEvent事件队列 (3)socket事件队列 (4)timer事件队列
阅读全文
posted @
2021-04-09 10:29
一杯清酒邀明月
阅读(695)
推荐(0)
Qt QTimerEvent 定时器事件
摘要:QTimerEvent类用来描述一个定时器事件。starttimer开启一个定时器,传入一个参数为超时时间,毫秒为单位。返回值是一个timerid,在timerEvent事件函数中,根据timerid来实现超时函数。 MainWindow.h 1 #ifndef MAINWINDOW_H 2 #de
阅读全文
posted @
2021-04-09 10:04
一杯清酒邀明月
阅读(1083)
推荐(0)
Qt QFutureWatcher
摘要:简述 QFuture 表示异步计算的结果,QFutureWatcher 则允许使用信号和槽监视 QFuture,也就是说,QFutureWatcher 是为 QFuture 而生的。 详细描述 QFutureWatcher 提供了有关 QFuture 的信息和通知,使用 setFuture() 函数
阅读全文
posted @
2021-04-08 14:25
一杯清酒邀明月
阅读(3984)
推荐(1)
Qt 加快编译速度 MAKEFLAGS=-j4
摘要:菜单栏->工具-> 选项->构建与运行->构建套件->点击自动检测内容->在同一页面找到 Environment ->点击change ->在弹出的窗口 添加 MAKEFLAGS=-j4 即可 -j4 :表示cup四个核数加入编译
阅读全文
posted @
2021-04-08 13:13
一杯清酒邀明月
阅读(497)
推荐(0)
Qt 加速编译 快速编译 make -j4
摘要:1.Qt默认的编译速度不是很快 查看任务管理器 qt编译的时候CPU利用率百分之十点多 2. 设置方法:我们为Make添加参数 3.解释至于make -j4 的意思 网友们有说是多核编译、多进程、多线程、多作业 于是特意找到GNU的官方说明,看一下官方是怎么解释的。 GNU官方 Make参数说明 指
阅读全文
posted @
2021-04-08 13:12
一杯清酒邀明月
阅读(1069)
推荐(0)
Qt 绝对值 qAbs()、abs() 与fabs()
摘要:1 nt abs(int i); // 返回int类型的绝对值 2 double fabs(double i); // 返回double类型的绝对值 3 float fabsf(float i); // 返回float类型的绝对值 4 T qAbs(const T &value) // 返回输入参数
阅读全文
posted @
2021-04-06 16:21
一杯清酒邀明月
阅读(6454)
推荐(0)
Qt QTransform 二维坐标系之间的转换
摘要:QTransform类 QTransform类用于控制二维坐标系之间的转换 包含:位移、缩放、扭曲、旋转还有映射 首先看它的核心内容: 这是一个仿射变换矩阵(affine transformation),它包含了坐标系转换所需要的所有信息 elementdescription m11 水平缩放 m2
阅读全文
posted @
2021-04-06 16:02
一杯清酒邀明月
阅读(1891)
推荐(0)
Qt 延时之QApplication::processEvents详解
摘要:应用场景一:处理密集耗时的事情 有时候需要处理一些跟界面无关的但非常耗时的事情,这些事情跟界面在同一个线程中,由于时间太长,导致界面无法响应,处于“假死”状态。例如:在应用程序中保存文件到硬盘上,从开始保存直到文件保存完毕,程序不响应用户的任何操作,窗口也不会重新绘制,从而处于“无法响应”状态,这是
阅读全文
posted @
2021-04-02 14:21
一杯清酒邀明月
阅读(2268)
推荐(0)
Qt 设置按钮禁用
摘要:直接使用成员函数的setEnabled和setDisabled成员函数,例如: ui->playVideoButton->setEnabled(false); 或者 ui->playVideoButton->setDisabled(true); 对应的,按钮变成灰色 此时按钮处于不可点击状态,其实这
阅读全文
posted @
2021-04-02 14:03
一杯清酒邀明月
阅读(2867)
推荐(0)
Qt private public protected slots的区别
摘要:public slots:在这个区内声明的槽意味着任何对象都可将信号与之相连接。这对于组件编程非常有用,你可以创建彼此互不了解的对象,将它们的信号与槽进行连接以便信息能够正确的传递。 protected slots:在这个区内声明的槽意味着当前类及其子类可以将信号与之相连接。这适用于那些槽,它们是类
阅读全文
posted @
2021-04-01 09:34
一杯清酒邀明月
阅读(2440)
推荐(3)
Qt 动态添加控件,并删除指定控件
摘要:最近在修改一个软件的过程中,把Qt控件进行了重写,重写之后,布局更加简单、合理,如此使得出现bug的概率降低。 实现的功能1、将零散的小控件打包成一个模块,进行整模块的添加。2、实现每个模块的单独删除。3、实现数值、功能的交互功能。如按钮等。 代码内容话不多说,直接上代码。因为是顺手写的,注释不多,
阅读全文
posted @
2021-03-30 14:44
一杯清酒邀明月
阅读(2158)
推荐(0)