默认情况下,如果我们点击X 按钮是可以关闭QtGui.QWidget--窗口,有时候我们想要重新定义该操作,如下:该程序展示了,当我们点击关闭按钮时,会显示一个提示信息
下面有一个函数我们需要用到,当我们关闭QtGui.QWidget 时会产生一个 QCloseEvent 事件,为了更改窗口的响应方式,我们需要重定义closeEvent() 事件句柄(event handler 事件句柄;事件处理程序)
import sys from PySide import QtGui class Example(QtGui.QWidget): def __init__(self): super(Example, self).__init__() self.initUI() def initUI(self): self.setGeometry(300, 300, 250, 150) self.setWindowTitle('Message box') self.show() def closeEvent(self, event): reply = QtGui.QMessageBox.question(self, 'Message', # 创建一个信息框,参数说明: # Message:信息框的title, "Are you sure to quit?", QtGui.QMessageBox.Yes | # Are you sure to quit?:信息框展示的信息 QtGui.QMessageBox.No, QtGui.QMessageBox.No) # 信息框的两个按钮 Yes,No ,最后一个参数:默认按钮 if reply == QtGui.QMessageBox.Yes: # 窗口的响应信息存在reply中 event.accept()# 接受信息并关闭窗口 else: event.ignore()# 忽略信息 def main(): app = QtGui.QApplication(sys.argv) ex = Example() sys.exit(app.exec_()) if __name__ == '__main__': main()