Skip to main content
 首页 » 编程设计

python之在子窗口小部件还活着时阻止 QMainWindow,pyqt

2025年05月04日14kerrycode

我希望当用户按下按钮时,在 MainWindow 被阻止等待填写表单后会出现一个表单

请您参考如下方法:

您无需执行其他答案所建议的任何操作。使用任何 exec() 方法肯定会产生错误,因为突然间您的 gui 代码可以重新输入。不要这样做。

您需要做的就是在显示它之前设置适当的窗口模态(这是重要的部分)。所以:

widget.setWindowModality(Qt.ApplicationModal) 
widget.show() 

如果您希望窗口只阻塞其他一些窗口,而不是整个应用程序:

widget.setWindowFlags(widget.windowFlags() | Qt.Window) 
widget.setParent(otherWindow) 
widget.setWindowModality(Qt.WindowModal) 
widget.show() 

请注意,此代码仅适用于 PyQt4,它不适用于 Qt 5,窗口功能属于与 QWidget 分开的类。