我创建了一个主GUI,并在一个名为one.py的文件中编码。需要从主脚本调用自定义GUI /小部件。第二个自定义GUI /小部件是使用qt designer创建的,工作脚本名为second.py。
执行second.py时工作正常。当one.py中的变量发生变化时,必须触发第二个GUI。当变量在one.py中发生变化时,GUI会按预期弹出。但是,与第二个GUI一起,one.py中的下一个小部件也会显示。 one.py的示例脚本如下所示:
if variable:
self.child_win = PersistenceGui(self)
self.child_win.show()
QtGui.QMessageBox.information("Some info to the users.")
在上述情况下,子窗口和信息框一起显示。但是我想在关闭子窗口/ GUI框后才显示信息框。我在哪里弄错了?
答案 0 :(得分:1)
将PersistenceGui
设为QDialog
的子类,然后将其显示为:
self.child_win.exec_()
这将阻止,直到用户关闭对话框,然后将显示消息框。
修改强>:
如果您想知道用户是否取消了对话框,请尝试以下操作:
if self.child_win.exec_() == QtGui.QDialog.Accepted:
QtGui.QMessageBox.information("Some info to the users.")
else:
# ask if user wants to close main window, or whatever...