我希望当用户按下按钮时,在 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 分开的类。
