QT编程时,,界面不阻塞立刻显示
来源:互联网 发布:关口知宏漫画 编辑:程序博客网 时间:2024/05/29 18:18
1.问题描述:
QT项目中,发现界面调用show()之后,并不能直接显示出界面,需要等msleep(3000)执行完以后,才可以。
MainWindow w;
w.show();
QThread::msleep( 3000 );
return a.exec
2.原因分析:
QThread.msleep(3000),占用了该线程
3.处理方式:
QCoreApplication::processEvents(); //后台处理程序
个人理解,就是后台去处理下面的事情,让界面保持响应能力
如下官方解释
根据指定的标记处理调用线程的所有挂起事件,直到没有更多的事件处理。
当您的程序忙于执行长时间操作(例如复制文件)时,可以偶尔调用此功能。
如果您正在运行连续调用此函数的本地循环,而不发生事件循环,则不会处理DeferredDelete事件。 这可能会影响窗口小部件的行为,例如 QToolTip,依赖于DeferredDelete事件才能正常运行。 另一种方法是从该本地循环中调用sendPostedEvents()。
调用此函数仅处理调用线程的事件。
注意:此功能是线程安全的。
4.解决后:
MainWindow w;
w.show();
QCoreApplication::processEvents();
QThread::msleep( 3000 );
return a.exec();
QApplication::processEvents()
0 0
- QT编程时,,界面不阻塞立刻显示
- qt界面不显示鼠标
- 【qt】为什么写了界面显示不出来
- Qt显示界面旋转
- 【Qt移植到linux】问题 qt界面无法输入中文,中文不显示,乱码等问题
- 程序启动时不显示界面
- UI界面不显示
- Qt界面编程积累
- Qt多界面编程
- 计算器-QT界面编程
- qt界面编程入门
- Qt延时一段时间不阻塞主线程
- Qt延时一段时间不阻塞主线程
- Qt界面不自动刷新
- QT界面显示“中文字符”
- QT界面显示实时时间
- qt designer启动后不显示界面问题的原因与解决办法
- 解决Qt Designer.exe启动后,界面不显示的问题
- 第三章 JSX语法
- 翻转设计模式系列——第一部分--面向对象基础知识(1)--概览
- Canvas应用小结
- unity ui button ugui 按钮如何设置点击区域为圆形?【整理转载】
- Spring_Spring Boot Actuator
- QT编程时,,界面不阻塞立刻显示
- SharedPreference.Editor的apply和commit方法的区别
- 仿微信消息列表(RecycleView)双击移动未读消息
- Android Power Management 实现
- post请求网络数据,返回给主线程更新UI实例
- c++ 并行编程
- linux批量删除大量小文件
- spring applicationContext.xml 配置文件详解
- ASP.NET实现三层架构网站创建流程