QMessageBox----功能作用

1、QMessageBox----功能作用:用于通知用户或请求用户的提问和接收应答一个模态对话框。

对话框的构成:

无法自动弹出,需要手动弹出,不管使用什么方法调用,它都是一个窗口级别的模态对话框。

from PyQt5.Qt import *

class Window(QWidget):
    def __init__(self):
        super().__init__()
        self.setWindowTitle("QMessageBox的学习")
        self.resize(500, 500)
        self.setup_ui()

    def setup_ui(self):
        mb = QMessageBox(self)
        # 无法自动弹出,需要手动弹出,不管使用什么方法调用

        # 强行设置它是否是模态
        mb.setModal(False)
        # 同setModal()效果相同,设置为非模态
        mb.setWindowModality(Qt.NonModal)
        # 它都是一个窗口级别的模态对话框
        mb.show()


if __name__ == "__main__":
    import sys
    app = QApplication(sys.argv)
    window = Window()
    window.resize(500, 500)
    window.show()

    sys.exit(app.exec_())

2、构造函数:

 

 3、内容设置:

 

 

        mb = QMessageBox(self)
        #mb = QMessageBox(QMessageBox.Warning, "dade1", "<h2>修改内容</h2>", QMessageBox.Ok | QMessageBox.Discard, self)
        # 无法自动弹出,需要手动弹出,不管使用什么方法调用
        # 强行设置它是否是模态
        #mb.setModal(False)
        # 同setModal()效果相同,设置为非模态
        mb.setWindowModality(Qt.NonModal)
        # 它都是一个窗口级别的模态对话框
        # 设置窗口
        mb.setWindowTitle("消息提示")
        # 设置标准图标信息
        mb.setIcon(QMessageBox.Information)
        # 设置自定义图标信息
        mb.setIconPixmap(QPixmap("xxx.png").scaled(50, 50))
        # 设置主标题内容
        mb.setText("<h3>文件内容已经被修改</h3>")
        # 设置副标题
        mb.setInformativeText("<h4>内容已修改,是否保存</h4>")
        # 设置复选框
        mb.setCheckBox(QCheckBox("下次不再提示", mb))
        # 设置详情文本
        mb.setDetailedText("修改的内容是:给每一行代码加了分号")
        mb.show()

4、按钮:

        # 设置标准按钮
        mb.setStandardButtons(QMessageBox.Yes | QMessageBox.No)
        # 添加自定义按钮
        btn = QPushButton("dw", mb)
        mb.addButton(btn, QMessageBox.YesRole)
        # 效果同上
        btn2 = mb.addButton("xx2", QMessageBox.NoRole)
        # 移除某一个按钮
        mb.removeButton(btn)

        # 设置默认按钮,默认那个按钮获取焦点
        mb.setDefaultButton(btn2)
        # 退出按钮,点击ESC激活的按钮
        mb.setEscapeButton(btn2)

 点击某个按钮会发射的信号,并且会打印出对应的按钮:

        print(btn)
        print(btn2)
        # 按钮被点击会发出信号
        mb.buttonClicked.connect(lambda btn: print(btn))
        mb.show()

 想知道我们点击了哪个按钮,可以通过按钮地址或者按钮对应的角色做对比。

5、文本交互控制:(可以同时通过鼠标和键盘进行标志)仅仅控制主标题,其他内容不受更改。

 6、静态方法:快速展示特定类型的消息对话框:关于QT的,警告、疑问等。

(以下返回值都是按钮) 

 信号:点击按钮会发出信号:

    def setup_ui(self):
        # 一个关于对话框
        QMessageBox.about(self, "xx1", "xx2")
        # 关于qt的对话框
        QMessageBox.aboutQt(self, "we")
        # 关于疑问对话框,设置默认按钮为QMessageBox.Discard
        result = QMessageBox.question(self, "xx1", "xx2", QMessageBox.Ok | QMessageBox.Discard, QMessageBox.Discard)
        print(result, "xxx")
        return None
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

。七十二。

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值