欢迎光临散文网 会员登陆 & 注册

对话类控件

2022-01-18 16:21 作者:海鸥之道  | 我要投稿

1、QDialog

为了更好地实现人机交互,比如 Windows 及 Linux等系统均会提供一系列的标准对话框来完成特定场景下的功能,如选择字号大小、字体颜色等。在PyQt 5中定义了一系列的标准对话框类,让使用者能够方便和快捷地通过各个类完成字号大小、字体颜色以及文件的选择等。

QDialog类的子类主要有QMessageBox.QFileDialog,QFontDialog,QInputDialog等,这些内容在本节都会介绍到。

QDialog类中的常用方法如表1所示。

表  1

实例演示1:QDialog的使用

运行代码,点击弹出对话框,显示效果如下:

图  1

代码分析:

在这个例子中,Dialog 窗口的 WindowModality属性决定是否为模态或非模态。当用户按下Esc键时,对话框窗口将会默认调用 QDialog.reject()方法,然后关闭对话框窗口。

单击QWidget窗口中的PushButton按钮时,将生成一个对话框窗口。在对话框窗口的标题栏上没有最小化和最大化控件。以下代码将给按钮的clicked信号添加槽函数showdialog()

由于 Dialog窗口的 WindowModality属性设置为Qt.ApplicationModal模态,用户只有关闭所弹出的对话框窗口后,才能关闭主窗口。以下代码用于设置对话框模态:

2、QMessageBox

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

QMessageBox类提供了许多常用的弹出式对话框,如提示、警告、错误、询问、关于等对话框。这些不同类型的QMessageBox对话框只是显示时的图标不同,其他功能是一样的。

OMessageBox类中的常用方法如表2所示。

表  2

QMessageBox的标准按钮类型如表3所示。

表  3

实例演示2:QMessageBox的使用

运行程序,显示效果如图所示:

图  2

3、QInputDialog

QInputDialog控件是一个标准对话框,由一个文本框和两个按钮(OK按钮和Cancel按钮)组成。当用户单击OK按钮或按 Enter键后,在父窗口可以收集通过QInputDialog 控件输入的信息。QInputDialog 控件是QDialog标准对话框的一部分。

在 QInputDialog 控件中可以输入数字、字符串或列表中的选项。标签用于提示必要的信息。

QlnputDialog类中的常用方法如表4所示。

表  4

实例演示3:QInputDialog的使用

运行代码,点击按键1~3,分别选择或者输入对应的数据,显示效果如下:

图  3

代码分析:

在这个例子中,在QFormLayout布局管理器中放置了三个按钮和三个文本框。当单击按钮时,将弹出标准对话框,把按钮的单击信号与自定义的槽函数连接起来。

当调用QInputDialog.getItem()函数时,QInputDialog控件包含一个 QCombox控件和两个按钮,用户从 QCombox中选择一个选项后,允许用户确认或取消操作。

同理,当调用QInputDialog.getText()函数时,QInputDialog 控件包含一个文本框和两个按钮,允许用户输入字符串;当调用QInputDialog.getInt()函数时,QInputDialog包含一个OSpinBox控件和两个按钮,允许用户输入整数。

4、QFontDialog

QFontDialog 控件是一个常用的字体选择对话框,可以让用户选择所显示文本的字号大小、样式和格式。QFontDialog是 QDialog标准对话框的一部分。使用OFontDialog类的静态方法getFont(),可以从字体选择对话框中选择文本的显示字号大小、样式和格式。

实例演示4:QFontDialog的使用

运行程序,显示的效果如图:

图  4

代码分析:

在这个例子中,通过字体选择对话框选择相应的字体,并且所选择字体的效果显示在 QLineEdit的文本上。

实例化 fontButton和 fontLineEdit对象,并将fontButton的clicked 信号和槽函数getFont(绑定在一起。

创建QVBoxLayout布局,在垂直布局管理器中添加fontButton和 fontLineEdit组件,并按照相应的位置添加到栅格布局中。

当单击fontButton按钮时,将clicked信号发送到槽函数getFont()中。

自定义槽函数,选择字体,并将字体效果设置到fontLineEdit中。getFont()方法返回的为元组类型,同时返回所选择的字体和函数执行的状态。

5、QFileDialog

QFileDialog是用于打开和保存文件的标准对话框。QFileDialog 类继承自QDialog类。

QFileDialog在打开文件时使用了文件过滤器,用于显示指定扩展名的文件。也可以设置使用QFileDialog打开文件时的起始目录和指定扩展名的文件。

OFileDialog类中的常用方法如表5所示。

表  5

实例演示5:QFileDialog的使用

运行程序,显示效果如下:

图  5

点击加载图片,如下:

图  6

点击加载文件:

图  7

代码分析:

在这个例子中,通过文件对话框来选择文件,其中第一个文件对话框只允许打开图片文件,并把所加载的图片显示在标签(QLabel)中;第二个文件对话框只允许打开文本文件,并把文本内容显示在文本框(QTextEdit)内。

第一个按钮使用QFileDialog.getOpenFileNam(),调用文件对话框来显示图像,并显示在一个标签控件中。它负责打开项目根目录下的文件。其核心代码如下:

在QFileDialog.getOpenFileNam()函数中:

第一个参数用于指定父组件;

第二个参数是OFileDialog对话框的标题;

第三个参数是对话框显示时默认打开的目录,“.”代表程序运行目录,“/”代表当前盘下的根目录(在 Windows、Linux 下“/”就表示根目录)。需要注意不同平台下路径的显示方式,比如 Windows平台下的C盘“C:)”等。

第四个参数是对话框中文件扩展名过滤器(Filter)。比如使用“Image files(".jpg *.png)”表示只能显示扩展名为.jpg 或.png的文件。

第二个按钮使用文件对话框(QFileDialog)对象的exec_()方法来选择文件,并把所选文件的内容显示在文本编辑控件中。其核心代码如下:


对话类控件的评论 (共 条)

分享到微博请遵守国家法律