PyQt5 Message Box 学习

2020-04-01  本文已影响0人  _Mirage

注意的是当我们要退出一个QWidget组件时, 会产生一个QCloseEvent事件,如果我们想要改变widget组件默认的行为,我们就需要去重写QWidget.closeEvent()这个函数。

然后QMessageBox.question:

"""
question(QWidget, str, str, 
buttons: Union[QMessageBox.StandardButtons,
QMessageBox.StandardButton] = QMessageBox.StandardButtons(QMessageBox.Yes|QMessageBox.No), 
defaultButton: QMessageBox.StandardButton = QMessageBox.NoButton) -> 
QMessageBox.StandardButton
"""
# coding='utf-8'


from PyQt5.QtWidgets import QWidget, QApplication, QMessageBox
import sys


class Gui(QWidget):
    def __init__(self):
        super().__init__()
        self.start()

    def start(self):
        self.setGeometry(250, 250, 500, 600)
        self.setWindowTitle('MessageBox 测试')
        self.show()

    def closeEvent(self, event) -> None:
        reply = QMessageBox.question(self, '提示', '是否离开?',
            QMessageBox.Yes | QMessageBox.No, QMessageBox.No)
        if reply == QMessageBox.No:
            event.ignore()
        else:
            event.accept()


win = QApplication(sys.argv)
gun = Gui()
sys.exit(win.exec_())
运行结果: image.png
上一篇 下一篇

猜你喜欢

热点阅读