单击最小化按钮时触发pyqt事件

Ste*_*hen 1 python qt pyqt minimize pyqt4

我已经弄清楚当窗口发生变化时如何触发事件,但是这种情况发生在我从数据库中读取窗口信息时,我想在窗口缩小时写入数据库,所以,我想触发我的事件基于单击缩小按钮而不是窗口更改的任何时间.

ekh*_*oro 5

下面的脚本适用于Linux和Win XP(可能是OSX,但我无法测试):

from PyQt4 import QtGui, QtCore

class Window(QtGui.QWidget):
    def __init__(self):
        QtGui.QWidget.__init__(self)

    def changeEvent(self, event):
        if event.type() == QtCore.QEvent.WindowStateChange:
            if self.windowState() & QtCore.Qt.WindowMinimized:
                print('changeEvent: Minimised')
            elif event.oldState() & QtCore.Qt.WindowMinimized:
                print('changeEvent: Normal/Maximised/FullScreen')
        QtGui.QWidget.changeEvent(self, event)

if __name__ == '__main__':

    import sys
    app = QtGui.QApplication(sys.argv)
    window = Window()
    window.resize(300, 300)
    window.show()
    sys.exit(app.exec_())
Run Code Online (Sandbox Code Playgroud)