Python PySide关闭窗口函数接收自定义参数
我在创建一个Control类的实例和一个GuiWindow类的实例时使用了main函数。此GUI窗口对象具有接受前面提到的控件类实例作为其参数的方法。但是GuiWindow没有控件对象作为它自己的属性!当从主函数调用时,它将其作为自己方法的参数接收。所以一切正常,GuiWindow有事件监听器,他根据这些监听器调用控件,控件做它需要做的任何事情。。。但当用户关闭GUI窗口时,控件需要做一些非常重要的事情 我当前的closeEvent函数只执行以下操作:Python PySide关闭窗口函数接收自定义参数,python,pyqt,pyside,Python,Pyqt,Pyside,我在创建一个Control类的实例和一个GuiWindow类的实例时使用了main函数。此GUI窗口对象具有接受前面提到的控件类实例作为其参数的方法。但是GuiWindow没有控件对象作为它自己的属性!当从主函数调用时,它将其作为自己方法的参数接收。所以一切正常,GuiWindow有事件监听器,他根据这些监听器调用控件,控件做它需要做的任何事情。。。但当用户关闭GUI窗口时,控件需要做一些非常重要的事情 我当前的closeEvent函数只执行以下操作: def closeEvent(self,
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()
如果我想将控件类的对象传递给这个closeEvent函数,该怎么办?可能吗?我不知道如何覆盖closeEvent函数,以便它知道需要调用一些控制方法。如果我将控件类对象作为closeEvent函数参数,它当然不起作用
有人知道吗?我应该使用某种信号和事件机制吗 我通过使用信号和事件机制获得了我的控制类的closeEvent函数调用方法。我创建了以下类:
class ExitApp(QtCore.QObject):
exit_app_signal = QtCore.Signal(str)
def __init__(self):
QtCore.QObject.__init__(self)
def exit_app(self, exit_message):
self.exit_app_signal.emit(exit_message)
我将哪个对象连接到我的控件类的所需方法,并以以下方式调用它:
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:
self.exit_app.exit_app('Properly exit.')
event.accept()
exit()
else:
event.ignore()