这次我真的不知道如何提出我的问题......
我的应用程序以 QDialog 作为主窗口。
该应用程序从远程机器获取不同的值,例如温度、湿度等。
为了进行开发,我添加了一个包含不同小部件的组框来模拟这些值。我对向用户发出警告和警报有不同的限制。
例如,如果温度升高超过 30°C,则我打开一个 QMessageBox,其中包含请求时间(应用程序在远程计算机上进行轮询)和当前温度。所以每个请求周期都会更新。
我使用 show() 方法调出消息框,使我的应用程序在后台运行。现在的问题是:焦点位于消息框,在消息框不被接受/完成之前,我的主窗口/ QDialog 中没有任何内容可以单击。
这就是我的问题:在模拟模式下,我想尝试不同的温度值,我可以通过主窗口中的滑块进行调整。我如何访问这些小部件/使消息框以某种方式“不阻塞”?
此致,
Matthias
您所经历的称为窗口的“模态”。默认情况下,一个QMessageBox
是“应用程序模式”。这意味着所有其他应用程序窗口的输入都被阻止。
要更改模式,请使用设置窗口模态() http://doc.qt.nokia.com/latest/qmessagebox.html#setWindowModality其值为Qt::窗口模态 http://doc.qt.nokia.com/latest/qt.html#WindowModality-enum就在你打电话之前show()
。在你的情况下:
box->setWindowModality(Qt::NonModal);
box->show();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)