PyQt5:消息窗口(5)

学习《PyQt4入门指南 PDF中文版.pdf 》笔记

PyQt5:消息窗口(5)_第1张图片

#!/usr/bin/python
# messagebox.py

from PyQt5 import QtWidgets
from PyQt5.QtWidgets import QMessageBox

class MessageBox(QtWidgets.QWidget):
    def __init__(self,  parent = None):
        QtWidgets.QWidget.__init__(self,  parent)
        
        self.setGeometry(300,  300,  250,  150)
        self.setWindowTitle('Message Box')
    
    def closeEvent(self,  event):
        reply = QMessageBox.question(self,  'Message', 
        "Are you sure to quit?",  QMessageBox.Yes,  QMessageBox.No)
        if reply == QMessageBox.Yes:
            event.accept()
        else:
            event.ignore()
        
if __name__ == "__main__":
    import sys
    app = QtWidgets.QApplication(sys.argv) 
    msgBox = MessageBox()
    msgBox.show()
    sys.exit(app.exec_())

如果我们关闭QWidget窗口,QCloseEvent事件就会被触发。要改变原有的Widget行为阻止该窗口的关闭,我们就需要重新实现closeEvent()方法。    

reply= QMessageBox.question(self,  'Message',

       "Are you sure to quit?", QMessageBox.Yes,  QMessageBox.No)
         通过上面的语句我们可以显示一个带有两个按钮(Yes/No)的消息窗口。第一个字符串参数'Message'在消息窗口的标题栏显示。第二个字符串参数以对话的形式显示在消息窗口中。返回的结果被保存在reply变量中。        
if reply == QMessageBox.Yes:
            event.accept()
        else:
            event.ignore()
         我们使用上面的if语句来判断用户选择的结果。如果用户选择了Yes按钮,那么关闭widget窗口并终止应用程序的动作会被允许执行。否则,关闭窗口的动作会被忽略。

你可能感兴趣的:(PyQt5)