PyQt5快速上手基础篇5-messagebox用法

前言

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

一、基础知识

1.messagebox简介

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

PyQt5快速上手基础篇5-messagebox用法

标准按钮可选类型如下

PyQt5快速上手基础篇5-messagebox用法

二、实例

1. QT Designer设计UI

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

PyQt5快速上手基础篇5-messagebox用法

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

PyQt5快速上手基础篇5-messagebox用法

2.将messagebox.ui转换为ui_messagebox.py

进入messagebox.py文件根目录,输入如下指令:

<code>pyuic5 -o ui_messagebox.py messagebox.ui/<code>

3.程序分析

程序实现的功能是在按钮点击的时候,同时弹框在UI屏上

<code>
# 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_())/<code>

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

三、运行

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

点击info button:

PyQt5快速上手基础篇5-messagebox用法

点击warn button:

PyQt5快速上手基础篇5-messagebox用法

点击critical button:

PyQt5快速上手基础篇5-messagebox用法

寄语:一沙一世界,一叶一菩提


分享到:


相關文章: