前面内容我们介绍了PyQt5中常用控件,并针对控件给出了详细的使用方法和一些典型的例子。


回顾下精彩内容

Python用PyQt5设计省市县三级联动的下拉选框,QComboBox使用详解

Python界面编程之PyQt5基础控件介绍,QSlider滑动条控件使用详解

Python界面编程之PyQt5常见控件应用展示,单选钮和复选钮使用详解

Python用PyQt5设计漂亮界面之按钮类控件的使用,QPushButton详解

今天,我们继续来了解PyQt5中的常用控件(QMessageBox)消息对话框控件。


消息对话框

QMessageBox是弹出对话框类控件的一种。跟前面的思路一样,我们先来了解它的类继承结构,然后详细探讨QMessageBox的使用。

01父类QDialog介绍

在GUI程序设计中,我们经常会碰到这样一些标准化对话框控件,来完成相应的人机交互操作。比如选择字号大小、字体颜色、选择文件等等这样一些操作。


各种样式的消息对话框

在PyQt5中定义了一系列的标准对话框类,让调用者能够方便和快捷地通过各个类完成相应的操作。这种对话框类都是标准化的,当然,我们也可以自定义相应的内容。


我们也可以自定义自己的对话框

而QDialog类就是这类标准弹出对话框的父类。其典型子类有:QMessageBox(弹出消息对话框)、QFileDialog(文件类对话框)、QFontDialog(样式类对话框)、QInputDialog(输入对话框)等。QDialog主要掌握类的继承结构和弹出窗口模态即可。如下


对话框控件类的继承结构

02QDialog窗口模式

下面,我们通过一个案例展示QDialog窗口模式。源代码如下:


弹出对话框窗口模式案例

其它模式感兴趣的小伙伴自己实验下。

03QMessageBox弹出式对话框类简介

QMessageBox是一种通用的弹出式对话框,用于显示消息,允许用户通过单击不同的标准按钮对消息进行反馈,每个标准按钮都有一个预定义的文本、角色和十六进制数(这一点很重要)。


大小、格式是定义好的

QMessageBox类用于弹出对话框,向用户展示某一种信息,它提供了许多常用的弹出形式,如提示、警告、错误、询问、关于等对话框。这些不同形式的QMessageBox对话框只是显示时的图标不同,其它功能基本一致。


方法要掌握

QMessageBox常用方法

QMessageBox类的常用方法如下


各参数解释如下:

parent:指定父窗口控件

title:对话框标题

text:对话框文本

buttons:多个标准按钮,默认OK按钮

defaultButton:默认选中的标准按钮,默认是第一个标准按钮

int:图标图片整数值

QMessageBox的标准按钮类型

定义按钮时一般都会提供标准按钮类型,主要有以下几种:


QMessageBox效果展示

其实,之前的内容,我们对于tkinter常用的弹出对话框也进行过一次总结,PyQt5提供的这些样式,跟tkinter大致相同。想了解tkinter对话框样式请查看之前的一篇博文《Python使用tkinter界面编程中对话框样式汇总》。


QMessageBox常用对话框展示

下面的例子我们会详细介绍每一个对话框实现过程。

04QMessageBox常用控件展示

下面,我们通过一个案例来展示每一个类型的对话框实现方法:

首先,导入模块

fromPyQt5.Qtimport*

后续代码截图如下


创建按钮控件


信号-槽函数及界面展示

我们来看下程序界面。


程序界面

当单击按钮时弹出相应的对话框。这里就不做展示了。

界面是中文的,而按钮是英文显示的,这样是不是不太好看?我们来自定义一个QMessageBox类吧!

05自定义一个弹出式窗体

不废话,我们经常会遇到这样一种情况,当安装软件时,出现了一个错误,安装程序弹出对话框,让用户选择,终止安装、重试安装、忽略错误安装,这些选项选择了之后,程序执行下一步操作。我们来简单实现下这个界面。源代码如下


程序安装界面

实现效果如下所示


软件安装出错界面