解决QT程序CPU占用率高(setStyleSheet)
来源:互联网 发布:公交车gps数据 编辑:程序博客网 时间:2024/06/05 19:41
本人在利用QT Creater开发显示屏界面程序时,发现界面的CPU占用率达到了百分之95以上,极有可能出现程序崩溃的现象。通过前辈的指导和实验发现了其中的原因:本人利用label的颜色来实时更新不同的设备状态,label控件的颜色设置函数选择了setStyleSheet,由于定时器中不断刷新而且刷新频率较高,而且单个页面中的setStyleSheet较多,导致了CPU占用率高。
函数原型:
QString styleSheet () const
QString styleSheet () const void setStyleSheet ( const QString & styleSheet )
调用1次setStyleSheet,执行的工作如下:
(1)清空原先样式,将所有新的setStyleSheet放到查询表中。 (快)
(2)对已经创建的Widget设置样式,有用图则读图。(慢)
在setStyleSheet 后创建的Widget将会读取父控件的setStyleSheet并按setStyleSheet的执行流程工作。
重复调用setStyleSheet,会造成耗费双倍的时间在样式上。
解决办法:
用调色板QPalette,而设置最重要的就是setBrush()画刷。
例如:
使用setStyleSheet设置背景颜色:
ui ->label->setStyleSheet("background-color: rgb(0, 255,0);"); //设为绿色
使用调色板QPalette来设置控件的颜色:
palette.setBrush(ui ->label->backgroundRole(),QBrush(Qt::green));
ui ->label->setPalette(palette);
ui ->label->setAutoFillBackground(true);
通过测试,CPU使用率下降到了百分之20,不同机器配置差距不同。
- 解决QT程序CPU占用率高(setStyleSheet)
- QT仪表显示程序CPU占用率太高,怎么优化?
- windbg解决程序CPU占用率高,内存占用时高时低现象
- 解决Apache出现的CPU高占用率的问题
- NIO学习笔记——解决“服务器端cpu占用率高”
- 解决Apache出现的CPU高占用率的问题
- 解决Apache出现的CPU高占用率的问题
- C++ 多线程编程解决CPU占用率高问题
- ros路由器cpu占用率高的原因和解决
- 解决polkit-gnome-manage CPU占用率高的现象
- java程序cpu占用率高,分析具体线程
- 为什么cpu占用率非常高?
- CPU占用率高问题定位
- solaris cpu占用率高问题解决
- JVM CPU 占用率高分析
- JAVA CPU占用率高问题解决
- cpu占用,解决Apache出现的CPU高占用率的问题
- 编写程序 控制cpu占用率
- linux 实现双 网卡 绑定 (实验成功)
- 蓝牙技术(总概)
- 《ARM与Linux些许问题》第一章:ARM工作模式
- ImageView的Scaletype
- XMPP协议的原理介绍
- 解决QT程序CPU占用率高(setStyleSheet)
- sql删除表内所有数据 修改自动增长列起始值
- 深航遭虚假恐怖信息威胁案疑犯可能获刑超5年-民航局-虚假-信息
- 非整数倍率YUV422图像的自由缩放算法
- linux系统各个文件夹的介绍(未完善)
- MFC 生成 exe文件的图标更改方法(转)
- 对inout端口的理解
- Ponsole让C#控制台程序更漂亮的类库
- java序列化