如何正确捕获来自 PySide QtUiTools.QUiLoader() 设置的关闭事件?
我可以让实例化类连接到小部件和其他所有东西,但我不确定如何在此设置中拦截信号。
理想情况下,我希望所有关闭调用都通过我的 closeEvent(显然),以便我可以确保关闭窗口是安全的。但是由于我的 self.closeEvent() 绑定到我的 View(QtWidgets.QMainWindow) 而不是 self._qt.closeEvent(),我不知道如何使用 self._qt.closeEvent() 方法来覆盖它在这种情况下。
或者有没有更好的方法来设置它来捕获那些窗口事件?
# Compatible enough with Pyside 2
from PySide import QtGui as QtWidgets
from PySide import QtUiTools
from PySide import QtCore
class View(QtWidgets.QMainWindow):
def __init__(self, parent=None):
super(View, self).__init__(parent=parent)
self.setup()
def closeEvent(self, event):
# Do things
event.accept()
def setup(self):
loader = QtUiTools.QUiLoader()
fy = QtCore.QFile('example.ui')
fy.open(QtCore.QFile.ReadOnly)
self._qt = loader.load(fy, self)
fy.close()
self._qt.pCanceled.clicked(self._qt.close)
相关分类