Python PySide QTabWidget中选项卡的触发关闭事件

Python PySide QTabWidget中选项卡的触发关闭事件,python,pyside,Python,Pyside,我已经编写了3个独立的小部件,每个小部件都包含一个“closeEvent”。但是,当小部件作为选项卡放置在主窗口中时,不会触发关闭事件。当主窗口关闭时,如何发出信号以正确触发每个选项卡的“closeEvent” 我已经尽了最大努力简化代码,以专注于主要目标。我想为每个选项卡发出关闭事件,这样将来当我添加更多选项卡时,它将更加灵活,并且每个工具仍然是自包含的 closeEvent方法仅在收到关闭请求时为顶级窗口调用,因此它不适合您的用例。但是,在应用程序关闭时会发出几个信号,您可以连接到这些信号

我已经编写了3个独立的小部件,每个小部件都包含一个“closeEvent”。但是,当小部件作为选项卡放置在主窗口中时,不会触发关闭事件。当主窗口关闭时,如何发出信号以正确触发每个选项卡的“closeEvent”

我已经尽了最大努力简化代码,以专注于主要目标。我想为每个选项卡发出关闭事件,这样将来当我添加更多选项卡时,它将更加灵活,并且每个工具仍然是自包含的


closeEvent
方法仅在收到关闭请求时为顶级窗口调用,因此它不适合您的用例。但是,在应用程序关闭时会发出几个信号,您可以连接到这些信号

例如,你可以这样做:

class TabA(QtGui.QWidget):
    def __init__(self, parent=None):
        super(TabA, self).__init__(parent)
        ...
        QtGui.qApp.aboutToQuit.connect(self.handleClose)

    def handleClose(self):
        print "closing Tab A"
该信号在事件循环退出之前发出,还有一个
QtGui.qApp.lastWindowClosed
信号在主窗口关闭后发出

(请注意:不要尝试使用
\uu del\uu
来实现此目的,因为PyQt中严格未定义关机期间的确切行为,并且在不同版本之间可能会发生变化)

class TabA(QtGui.QWidget):
    def __init__(self, parent=None):
        super(TabA, self).__init__(parent)
        ...
        QtGui.qApp.aboutToQuit.connect(self.handleClose)

    def handleClose(self):
        print "closing Tab A"