专业的编程技术博客社区

网站首页 > 博客文章 正文

6.16 PyQt5控件介绍【消息提示控件】- QMessageBox

baijin 2024-10-24 08:49:42 博客文章 10 ℃ 0 评论

1.QMessageBox简介

PyQt5中QComboBox控件用于显示标准对话框,通常用于显示信息、警告、错误或询问用户。这些对话框具有标题、文本和一个或多个按钮,允许用户进行交互。

2.QMessageBox案例

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


class QMessageBoxDemo(QWidget):
    def __init__(self):
        super().__init__()
        print(self)
        self.init_ui()

    def init_ui(self):
        self.setWindowTitle('消息对话框')
        self.resize(300, 200)

        v_layout = QVBoxLayout(self)

        btn1 = QPushButton()
        btn1.setText('关于对话框')
        btn1.clicked.connect(self.show_msg_box)

        btn2 = QPushButton()
        btn2.setText('消息对话框')
        btn2.clicked.connect(self.show_msg_box)

        btn3 = QPushButton()
        btn3.setText('警告对话框')
        btn3.clicked.connect(self.show_msg_box)

        btn4 = QPushButton()
        btn4.setText('错误对话框')
        btn4.clicked.connect(self.show_msg_box)

        btn5 = QPushButton()
        btn5.setText('提问对话框')
        btn5.clicked.connect(self.show_msg_box)

        v_layout.addWidget(btn1)
        v_layout.addWidget(btn2)
        v_layout.addWidget(btn3)
        v_layout.addWidget(btn4)
        v_layout.addWidget(btn5)

    def show_msg_box(self):
        text = self.sender().text()
        print(self.sender())
        print(text)
        if text == '关于对话框':
            QMessageBox.about(self, '关于', '这是一个关于对话框')
        elif text == '消息对话框':
            msg_box = QMessageBox()
            msg_box.setIcon(QMessageBox.Information)  # 设置消息框图标

            # 图标种类
            # QMessageBox.Noicon                  # 消息框没有任何图标
            # QMessageBox.Question                # 一个图标,表示该消息正在提问
            # QMessageBox.Information             # 一个图标,表示该消息没有任何异常
            # QMessageBox.Warning                 # 一个图标,表示改消息是一个警告
            # QMessageBox.Critical                # 一个图标,表示该消息代表一个严重问题

            msg_box.setWindowTitle('消息提示')  # 消息框标题
            msg_box.setText('这是一个消息提示框')  # 消息框内容
            msg_box.addButton('是', QMessageBox.YesRole)  # 消息框按钮,改为中文
            msg_box.addButton('否', QMessageBox.NoRole)  # 消息框按钮,改为中文
            ret = msg_box.exec()  # 循环执行并接收按钮返回值

            # 返回值0为是,1为否
            if ret == 0:
                print('是')
            elif ret == 1:
                print('否')

        elif text == '警告对话框':
            info = QMessageBox.warning(self, '消息提示', '这是一个警告提示框', QMessageBox.Yes | QMessageBox.No,
                                       QMessageBox.Yes)
            print(info)
        elif text == '错误对话框':
            info = QMessageBox.critical(self, '消息提示', '这是一个错误提示框', QMessageBox.Yes | QMessageBox.No,
                                        QMessageBox.Yes)
            print(info)
        elif text == '提问对话框':
            info = QMessageBox.question(self, '消息提示', '这是一个提问提示框', QMessageBox.Yes | QMessageBox.No,
                                        QMessageBox.Yes)
            print(info)


if __name__ == '__main__':
    app = QApplication(sys.argv)
    w = QMessageBoxDemo()
    w.show()
    app.exec()

3.运行结果

4.常用消息框

方法

描述

QMessageBox.Noicon

消息框,没有任何图标

QMessageBox.Question

提问消息框

QMessageBox.Information

普通消息框

QMessageBox.Warning

告警消息框

QMessageBox.Critical

错误对话框



本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表