【发布时间】:2014-07-28 23:29:58
【问题描述】:
我在创建一个 Control 类的实例和一个 GuiWindow 类的实例时具有 main 函数。这个 GuiWindow 对象的方法接受前面提到的 Control 类的实例作为它们的参数。但是 GuiWindow 没有 Control 对象作为它自己的属性!当从主函数调用时,它接收它作为他自己的方法的参数。所以一切正常,GuiWindow 有事件监听器,根据它们,他调用 Control 和 Control 做它需要做的任何事情......但是当用户关闭 GUI 窗口时,Control 需要做一些非常重要的事情!
我当前的 closeEvent 函数所做的一切如下:
def closeEvent(self, event):
quit_msg = "Are you sure you want to exit the program?"
reply = QtGui.QMessageBox.question(self, 'Exit',
quit_msg, QtGui.QMessageBox.Yes, QtGui.QMessageBox.No)
if reply == QtGui.QMessageBox.Yes:
event.accept()
exit()
else:
event.ignore()
如果我想将 Control 类的对象传递给这个 closeEvent 函数怎么办?那可能吗?我不知道如何覆盖 closeEvent 函数,以便它知道它需要调用一些 Control 方法。如果我将 Control 类对象作为 closeEvent 函数参数,它当然不起作用...
有人知道吗?我应该使用某种信号和事件机制吗?
【问题讨论】: