gpt4 book ai didi

qt - QMessageBox block QDialog

转载 作者:行者123 更新时间:2023-12-01 09:36:43 26 4
gpt4 key购买 nike

这次我真的不知道如何提出我的问题......

我的应用程序以 QDialog 作为主窗口。应用程序正在从远程机器获取不同的值,例如温度、湿度等。

为了开发,我添加了一个包含不同小部件的组框来模拟这些值。我对向用户发出警告和警报有不同的限制。

例如,如果温度上升超过 30°C,那么我打开一个 QMessageBox,其中包含请求时间(应用程序在远程机器上轮询)和当前温度。所以每个请求周期都会更新。

我使用 show() 方法调出消息框,让我的应用程序在后台运行。现在的问题是:焦点在消息框上,在我的主窗口/QDialog 中没有任何内容可以单击,直到消息框未被接受/完成。

这就是我的问题:在模拟模式下,我想尝试不同的温度值,我可以通过主窗口中的 slider 进行调整。如何访问这些小部件/使消息框以某种方式“不阻塞”?

最好的问候,

马蒂亚斯

最佳答案

您所体验的称为窗口的“模态”。默认情况下,QMessageBox 是“应用程序模式”。这意味着所有其他应用程序窗口的输入都被阻止。

若要更改模式,请使用 setWindowModality()值来自 Qt::WindowModality就在您调用 show() 之前。在你的情况下:

box->setWindowModality(Qt::NonModal);
box->show();

关于qt - QMessageBox block QDialog,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6383464/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com