mat*_*ias 3 qt focus blocking qdialog qmessagebox
这次我真的不知道如何提出我的问题......
我有一个QDialog作为主窗口的应用程序.应用程序从远程机器获得不同的值,如温度,湿度等.
为了开发,我添加了一个包含不同小部件的组框来模拟这些值.我向用户投掷警告和警报有不同的限制.
例如,如果温度上升超过30°C,那么我打开一个带有请求时间的QMessageBox(应用程序在远程机器上进行轮询)和当前温度.所以每个请求周期都会更新.
我使用show()方法调出消息框,使我的应用程序在后台运行.现在的问题是:焦点在消息框中,我的主窗口/ QDialog中没有任何内容可以被点击,直到消息框不被接受/已经完成.
这就是我的问题:在模拟模式下,我想要使用不同的温度值,我可以通过主窗口中的滑块来调整.如何访问这些小部件/使消息框以某种方式"不阻塞"?
最好的祝福,
马蒂亚斯
你所经历的是一个窗口的"模态".默认情况下,a QMessageBox是"应用程序模式".这意味着阻止了对所有其他应用程序窗口的输入.
要更改模态,请在调用之前使用setWindowModality()和Qt :: WindowModality中的值show().在你的情况下:
box->setWindowModality(Qt::NonModal);
box->show();
Run Code Online (Sandbox Code Playgroud)