我有一个pyqt5应用程序,该应用程序在默认中央QMdiArea
内使用QWidget
控件,但是我不能阻止用户关闭它(通过单击右上角的十字按钮)。因此,我将其子类化以创建自己的类以更改其closeEvent
行为以及其他一些事件,以便在发生某些事情时能够停止运行,如下所示:
class myWindow(QMdiArea):
def __init__(self, parent):
QMdiArea.__init__(self, parent)
def closeEvent(self, event):
event.ignore()
def changeEvent(self, event):
pass
def childEvent(self, event):
pass
然后我从主表单中声明如下:
self.mwin = myWindow(self.centerwidget)
我可以看到加载主窗体时,它实际上是实例化myWindow对象,但是当我在运行时关闭该self.mwin
控件时,它甚至没有停止在closeEvent
方法中(或myWindow
类的任何其他事件方法),它只会将其关闭。