前言

本节我们将介绍messagebox的使用方法,messagebox可用在消息提示框、警告框、询问框、错误、关于等会话框。

一、基础知识

1. messagebox简介

messagebox是消息会话框,可以提示用户重点消息,并获取用户选择,便于控制程序在特殊情况下执行情况。

标准按钮类型如下

二、实例

1. QT Designer设计UI

打开designer.exe,使用默认的Main Window创建,直接点击Create按钮即可

设计UI图如下,并保存为messagebox.ui

2 将messagebox.ui转换为ui_messagebox.py

进入messagebox.py目录,输入pyuic5 -o ui_messagebox.py messagebox.ui

3 编写python程序

# encoding=utf-8

import sys

import PyQt5.QtWidgets as qw

import ui_msgbox

class myForm(qw.QWidget, ui_msgbox.Ui_Form):

def __init__(self):

super().__init__()

self.setupUi(self)

self.btn_info.clicked.connect(self.btn_info_cb)

self.btn_warn.clicked.connect(self.btn_warn_cb)

self.btn_critical.clicked.connect(self.btn_critical_cb)

self.btn_question.clicked.connect(self.btn_question_cb)

self.btn_about.clicked.connect(self.btn_about_cb)

def btn_info_cb(self):

print("ready to show messagebox.")

res = qw.QMessageBox.information(self, "提示", "我是info类型的MessageBox!", qw.QMessageBox.Yes | qw.QMessageBox.No)

if (qw.QMessageBox.Yes == res):

print("[info] you clicked yes button!")

elif (qw.QMessageBox.No == res):

print("[info] you clicked no button!")

def btn_warn_cb(self):

res = qw.QMessageBox.warning(self, "警告", "我是warn类型的MessageBox!", qw.QMessageBox.Yes | qw.QMessageBox.No)

if (qw.QMessageBox.Yes == res):

print("[warn] you clicked yes button!")

elif (qw.QMessageBox.No == res):

print("[warn] you clicked no button!")

def btn_critical_cb(self):

res = qw.QMessageBox.critical(self, "错误", "我是critical类型的MessageBox!", qw.QMessageBox.Abort | qw.QMessageBox.Cancel)

if (qw.QMessageBox.Abort == res):

print("[critical] you clicked Abort button!")

elif (qw.QMessageBox.Cancel == res):

print("[critical] you clicked Cancel button!")

def btn_question_cb(self):

res = qw.QMessageBox.question(self, "询问", "我是critical类型的MessageBox", qw.QMessageBox.Retry | qw.QMessageBox.Ok)

if (qw.QMessageBox.Retry == res):

print("[question] you clicked Retry button!")

elif (qw.QMessageBox.Ok == res):

print("[question] you clicked Ok button!")

def btn_about_cb(self):

qw.QMessageBox.about(self, "关于", "我是critical类型的MessageBox!")

if __name__ == '__main__':

app = qw.QApplication(sys.argv)

w = myForm()

w.show()

sys.exit(app.exec_())

首先设置为上一步用QT Designer设计的按钮,添加对应的messagebox,并获取用户点其情况,通过控制台log显示。

三、运行

进入文件目录,输入python3 run.py,即可弹出上述用QT Designer设计出来的页面。

点击info button:

点击warn button:

点击critical button:

点击question button:

点击about button:

四、结语

如您在使用过程中有任何问题,请加QQ群进一步交流,也可以github提Issue。

QQ交流群:906015840 (备注:物联网项目交流)

获取源码:关注公众号,回复pyqt5即可

一叶孤沙出品:一沙一世界,一叶一菩提

python的messagebox的用法_PyQt5快速上手基础篇5-messagebox用法相关推荐

  1. pyqt5从子目录加载qrc文件_PyQt5快速上手基础篇10-QSettings用法

    前言 本节我们学习使用PyQt5的QSettings的用法,使用QSettings可以记住用户操作UI界面设置的参数,下次打开软件的时候,会直接加载用户上一次设置的参数. 一.基础知识 1.QSett ...

  2. python没有上方工具栏_PyQt5快速上手基础篇8-菜单栏、工具栏和状态栏

    前言 本节我们学习使用Qt Designer设计菜单栏.工具栏和状态栏,并完成一个串口工具的界面设计,在接下来教程中,我们将逐步实现一个串口调试助手,并详细介绍相关的其他知识点. 一.基础知识 1.菜 ...

  3. python编程lcd显示_PyQt5快速上手基础篇2-按钮控制LCD屏显示

    前言 上一节我们完成了PyQt5开发环境搭建,本节开始我们正式进入PyQt5的世界,首先我给大家介绍下QT的信号与槽,然后利用这一特点完成点击按钮触发LCD屏显示功能. 一.基础知识 1. PyQt5 ...

  4. exe打包工具_pyqt5快速上手基础篇12-使用Pyinstaller打包应用程序

    前言 本节我们学习如何使用Pyinstaller打包pyqt5应用程序,pyqt5的打包要比之前文章中讲述的tkinter的打包稍微复杂点,主要区别在于pyqt5打包需要导入Qt相关库,笔者开始打包时 ...

  5. pyqt5设置dialog的标题_PyQt5快速上手基础篇7-弹出dialog

    前言 本节我们学习QDialog的使用,在主页面点击按钮弹出一个新的Dialog. 一.基础知识 1. dialog简介 窗口是GUI设计中不可获取的一部分,方便用户和程序直接交互,简化使用:Qdia ...

  6. designer pyqt5 界面切换_PyQt5快速上手基础篇3-设置窗口标题和图标

    前言 本节我们为QT Designer生成的UI界面添加图标和窗口标题. 一.实例运行 1. QT Designer设计UI 打开designer.exe,使用默认的Main Window创建,直接点 ...

  7. 力创eda 画布大小_立创EDA快速上手经验篇.docx

    立创EDA快速上手经验篇 立创EDA(海外版本叫easyeda)是近年比较流行的一款在线设计EDA(电子自动化)软件.相比早已经完成抢占市场的老牌工具,立创EDA通过"终身免费,在线方便,开 ...

  8. [Python从零到壹] 三十三.图像处理基础篇之什么是图像处理和OpenCV配置

    欢迎大家来到"Python从零到壹",在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界.所有文章都将结合案例.代码和作者的经验讲 ...

  9. [Python从零到壹] 四十一.图像处理基础篇之图像采样处理

    欢迎大家来到"Python从零到壹",在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界.所有文章都将结合案例.代码和作者的经验讲 ...

  10. [Python从零到壹] 三十七.图像处理基础篇之图像融合处理和ROI区域绘制

    欢迎大家来到"Python从零到壹",在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界.所有文章都将结合案例.代码和作者的经验讲 ...

最新文章

  1. 缓存在哪里_APP下载的视频都在哪?教你将缓存视频拿出来
  2. hash算法_一致性hash算法简介
  3. 孙正义下重金的机械臂独角兽梦碎:估值最高40亿美元,做披萨太难吃,只好去做披萨盒...
  4. html中如何屏蔽一段代码,html中如何使用python屏蔽一些基本功能(示例代码)
  5. 倾向得分匹配的stata命令_计量方法的适用条件汇总(二):倾向得分匹配
  6. fn:substring()函数
  7. netty中的引导Bootstrap服务端
  8. 12位黄金技术大佬发出警告:一大波必读好书向你袭来
  9. Unity TexMeshPro中文字体
  10. Protel99SE 50个常见问题解决方法与技巧
  11. 凤凰院凶真 解题报告
  12. 机器学习算法工程师笔试及面试总结
  13. Linux的磁盘配额设置
  14. YY协议官方下载|YY协议|YY协议下载|唯一官方网站www.yyfass.com
  15. C++华为+阿里+鹅厂面经大盘点-如果换做你能成功吗?
  16. 使用云效应用交付平台 AppStack进行应用管理
  17. 时间格式处理获取本年份的起止时间
  18. 多线程时,出现段错误
  19. linux php ya ziparchive,linux下zipArchive终于工作了
  20. Web 漏洞扫描工具 AppScan 和 AWVS 使用方式

热门文章

  1. 实测 ? 2019 史上最全 28个国外国内免费虚拟手机号平台
  2. php+tcpdf+表格,PHP使用tcpdf类生成PDF文件
  3. Mask-RCNN(2)Resnet101
  4. 【开发环境准备】更新板载ESP8285固件
  5. Sipeed M1W内部esp8285固件烧录教程
  6. RoboWare的安装与使用
  7. n元均匀直线matlab,均匀直线阵天线的分析
  8. jsoneditor光标错位的原因及解决方式
  9. 使用js创建a标签下载文件
  10. 利用python爬取飞猪信息_手把手教你使用Python爬取西刺代理数据(上篇)-阿里云开发者社区...