社区
Qt
帖子详情
qt界面操作按钮响应卡顿
LBJMD
2017-12-11 08:32:19
参考qwt实现了几个控件类,控件类中有设置值的函数,函数里调用了update函数,用于实时更新数值。当程序dialog里接受外部数据,并调用多个控件类函数实现值更新的过程中,发现在操作其他开关控件类对象时,有明显卡顿现象。
ps:和机器有一定关系,配置高的机器操作正常,不明显感受不出来。由于部署机器性能一般,所以表现出很卡的问题,请教此类问题原因和解决方法。
...全文
767
2
打赏
收藏
qt界面操作按钮响应卡顿
参考qwt实现了几个控件类,控件类中有设置值的函数,函数里调用了update函数,用于实时更新数值。当程序dialog里接受外部数据,并调用多个控件类函数实现值更新的过程中,发现在操作其他开关控件类对象时,有明显卡顿现象。 ps:和机器有一定关系,配置高的机器操作正常,不明显感受不出来。由于部署机器性能一般,所以表现出很卡的问题,请教此类问题原因和解决方法。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
大风哉
2017-12-13
打赏
举报
回复
建议楼主用少量数据进行测试,排除因为大量数据引发的“机器配置差异导致相同程序在不同机器上运行有快慢”。 另外可以按执行流程打印不同阶段的时间,定位到卡顿的位置后针对性地分析。 “Dialog中调用多个控件类函数实现值更新的过程中,发现在操作其他开关控件类对象时,有明显卡顿现象。”,如果把这些自定义控件类换成系统现有的控件类是否有此类问题,如果有,则需要查看自定义控件的实现过程。等到这一步了再把自定义控件的实现过程或思路另起一个帖子吧,这是我的思路,望采纳。
加盾男爵
2017-12-12
打赏
举报
回复
如果高配机器不卡,不一定是界面的问题,比如你传入大量数据,机器处理数据的时间就不一样
QT
高级编程
QT
界面
美化QSS
QT
网络编程
QT
绘图
QT
多线程视频课程
QT
课程学习目标这套
QT
课程体系是为准备从事以下软件工程师岗位工作的学员群体精心研发的。
QT
软件工程师
QT
高级软件工程师
QT
课程技术模块
QT
核心技术概念
QT
图形窗口编程技术
QT
QSS
界面
美化实战技术
QT
实用框架编程技术
QT
课程学习路线
QT
核心基础概念体系编程实践
QT
Widgets图形窗口编程基础体系编程实践
QT
基础控件和高级复杂控件体系编程实践
QT
布局管理体系编程实践
QT
模型视图代理框架编程实践
QT
QSS式样表编程实践
QT
界面
美化编程实践
QT
文件IO框架编程实践
QT
绘图框架编程实践
QT
图形视图框架编程实践
QT
网络框架编程实践
QT
多线程框架编程实践
QT
线程池框架编程实践
QT
并发库框架编程实践
QT
课程推荐章节
QT
控件美化
界面
美化是这套
QT
课程中的特色亮点,是
QT
软件工程师在工作实践中可以直接参考应用的,推荐认真学习。
QT
QSS基础控件
界面
美化
QT
QSS高级控件
界面
美化
QT
QSS其它控件
界面
美化
QT
QSS窗口组合
界面
美化
QT
QSS主窗口
界面
美化
Qt
执行耗时
操作
导致
界面
卡
顿的三种解决办法
Qt
界面
程序开发中,会遇到执行耗时
操作
时,导致
界面
卡
顿。原因是
界面
主线程是单线程,如果在UI主线程中执行耗时
操作
,例如点击
按钮
,
响应
函数去数据库查询数据,数据量比较大时,查询需要几秒钟甚至几十秒的时间,如果UI主线程一直等待
响应
函数返回,阻塞在
响应
函数内部,就无法
响应
界面
的其他消息或者事件,
界面
就会
卡
死,无
响应
;要实现好的用户体验,实现流程的
界面
操作
程序,就不能老是
卡
,比较好的方式就是采用异步
操作
、多线程等方法来实现异步,并发;5秒内执行完,可以考虑这种方法,超过5秒,
界面
也会
卡
顿;
Qt
解决
界面
频繁刷新
卡
顿的问题
有时候当我们需要频繁刷新
界面
的时,
界面
就会出现
卡
顿,或者
卡
死的情况,这个时候需要这样做。 本例使用
QT
ableView为例子为大家讲解解决方法。 猜想一:缓存+定时器 当有数据的时候调用setShowText()方法,将数据缓存到队列中,然后通过定时器
QT
imer,每隔一段时间调用slotShowTextByTimer()添加到
界面
上,但是效果不理想。 ui->tableView->horizontalHeader()->hide(); ui->tableV
C++之
Qt
执行耗时
操作
导致
界面
卡
顿的解决办法
使用更高效的排序算法:排序是计算中常见的任务,不同排序算法的时间复杂度可能从O(n)到O(n^2)不等。将耗时
操作
分解为多个较小的任务,并使用多线程或异步
操作
逐个执行这些任务,是一种非常有效的策略,用于提高应用程序的
响应
性和用户体验。在C++中使用
Qt
框架时,执行耗时
操作
可能会导致
界面
卡
顿,因为耗时
操作
会阻塞主线程(通常是GUI线程),从而无法及时
响应
用户输入或更新
界面
。当面对复杂的计算任务或大量的数据处理时,选择适合的算法和数据结构能够显著减少计算时间,从而提高程序的
响应
速度和整体性能。
解决
Qt
UI
界面
卡
顿的优化方法
需要注意的是,当在子线程中访问
界面
上的控件时,需要使用
Qt
提供的线程安全的方式进行
操作
,例如使用QMetaObject::invokeMethod()或QCoreApplication::postEvent()来更新
界面
。3. 在主线程中通过信号和槽机制与子线程进行通信,可以使用
Qt
的信号和槽机制来传递数据或执行
操作
。1. 创建一个继承自
QT
hread的子类,重写其run()函数,将耗时
操作
放在run()函数中。这样,耗时
操作
就会在子线程中执行,不会阻塞主线程,从而提高
界面
的
响应
速度。
Qt
16,237
社区成员
26,650
社区内容
发帖
与我相关
我的任务
Qt
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
复制链接
扫一扫
分享
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章