PyQt QMessageBox消息框

本文主要详细介绍PyQt5每日弹出消息框。

默认情况下,如果单击标题栏上的X按钮,QWidget将关闭。有时,我们需要更改此默认行为。

例如,如果在编辑器中打开了文件,则可以首先显示一个消息框,以确认是否打开操作。

 

PyQt消息框示例

当用户关闭窗口时,将显示一个简单的消息框。

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

class Example(QWidget):
    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):
        self.setGeometry(300, 300, 300, 220)
        self.setWindowTitle('Hello World')
        self.show()

    def closeEvent(self, event):
        reply = QMessageBox.question(self, 'Quit', 'Are you sure you want to quit?',
        QMessageBox.Yes | QMessageBox.No, QMessageBox.No)
        if reply == QMessageBox.Yes:
            event.accept()
        else:
            event.ignore()

if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())

如果关闭QWidget控件,则将生成QCloseEvent事件。要修改控件属性,我们需要重新实现closeEvent()事件处理程序。

reply = QMessageBox.question(self, 'Quit', 'Are you sure you want to quit?',                                                           
QMessageBox.Yes | QMessageBox.No, QMessageBox.No)

我们显示一个带有两个按钮的消息框,是和否。

  • 第一个字符串出现在标题栏中。
  • 第二个字符串是对话框中显示的消息文本。
  • 第三个参数指定弹出对话框中按钮的组合。
  • 最后一个参数是默认按钮,它是具有初始键盘焦点的按钮。

返回值存储在reply变量中。

if reply == QMessageBox.Yes:
    event.accept()
else:
    event.ignore()

在这里,我们使用来测试返回值if else。如果单击“是”按钮,则表示接受按钮控件的关闭并执行应用程序终止事件。否则,我们将忽略关闭事件。

程序执行后,单击右上角的X以弹出确认退出消息框

python pyqt消息框弹出

标签

发表评论