Qt消息循环与模态对话框和线程关系整理

您所在的位置:网站首页 amdvtm技术会卡吗 Qt消息循环与模态对话框和线程关系整理

Qt消息循环与模态对话框和线程关系整理

2024-07-15 00:07| 来源: 网络整理| 查看: 265

问题

之前在分析Qt事件循环源码时,相比很多人都会有疑问,当主线程(GUI 线程)在接受到某些命令时会弹出一个对话框,这个对话框会阻塞主界面的响应,这时候是不是有个子线程在处理弹出对话框的消息(毕竟这和多线程处理很像)?

概念普及 什么是模态对话框?

对于用户分成模态对话框和非模态对话框(如下解释源于百度百科)

模态对话框:又叫做模式对话框,是指在用户想要对对话框以外的应用程序进行操作时,必须首先对该对话框进行响应。如单击【确定】或【取消】按钮等将该对话框关闭。非模态对话框:又叫做无模式对话框,当用户打开非模态对话框时,依然可以操作其他窗口。例如,Windows提供的记事本程序中的【查找】对话框。【查找】对话框不会垄断用户的输入,打开【查找】对话框后,仍可与其他用户界面对象进行交互。 Qt中的模态对话框 模态对话框,会阻塞当前主界面及其他窗体,后续代码必须等到当前窗体关闭后方可执行 QDialog* pDialog = new QDialog(this); pDialog->setWindowTitle(QString::fromUtf8("模态对话框")); //以模态方法显示对话框 pDialog->exec(); // 关闭模态对话框后,才会继续执行下面的代码 qDebug()


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3