在大部分的操作系统中,为了更好的实现人机交互,windows以及linux中均为提供一系列的对话框来完成特定场景下的功能,诸如字体大小选择,字体颜色选择等等。PyQt5中定义了一些列的标准对话框的类,让使用者能够方便和快捷的通过各个类完成字体大小、颜色,以及文件的选择.
QFontDialog
#-*- coding:utf-8 -*- ''' QFontDialog ''' from PyQt5.QtWidgets import QApplication, QDialog,QWidget, QFontDialog, QPushButton, QLineEdit, QGridLayout import sys import os class FontDialog(QDialog): def __init__(self): super(FontDialog,self).__init__() self.initUI() def initUI(self): self.setWindowTitle("QFontDialog") self.setGeometry(400,400,300,260) self.fontButton = QPushButton("字体选择对话框") self.fontLineEdit = QLineEdit("Hello Python") self.fontButton.clicked.connect(self.openFont) self.mainLayout = QGridLayout() self.mainLayout.addWidget(self.fontButton,0,0) self.mainLayout.addWidget(self.fontLineEdit,0,1) self.setLayout(self.mainLayout) def openFont(self): font,ok=QFontDialog.getFont() if ok: self.fontLineEdit.setFont(font) if __name__ == '__main__': app = QApplication(sys.argv) ex = FontDialog() ex.show() sys.exit(app.exec_())
运行之后的效果:
控件说明:
控件类型 |
控件名称 |
作用 |
---|---|---|
QPushButton |
fontButton |
打开字体选择对话框 |
QLineEdit |
fontLineEdit |
显示设定字体类型的效果 |
示例说明:
通过字体选择对话框选择对应的字体,并且选择的字体效果设定在QLineEdit中显示的文本上。
代码分析:
L21~23:
self.fontButton = QPushButton("字体选择对话框") self.fontLineEdit = QLineEdit("Hello Python") self.fontButton.clicked.connect(self.openFont)
实例化fontButton 和fontLineEdit 对象,并将fontButton的clicked信号和槽函数openFont()绑定在一起。
L25~27:
self.mainLayout = QGridLayout() self.mainLayout.addWidget(self.fontButton,0,0) self.mainLayout.addWidget(self.fontLineEdit,0,1)
实例化网格布局,并将fontButton和fontLineEdit按照对应的位置添加到网格布局中。
L31~34:
def openFont(self): font,ok=QFontDialog.getFont() if ok: self.fontLineEdit.setFont(font)
自定义的槽函数,选择所需的字体,并将字体的效果设定到fontLineEdit中。getFont()方法返回的为元组类型,同时返回选择的字体和函数执行的状态。
| getFont(...) | QFontDialog.getFont(QFont, QWidget parent=None, str caption=QString(), QFontDialog.FontDialogOptions options=0) -> (QFont, bool) | QFontDialog.getFont(QWidget parent=None) -> (QFont, bool)
getFont()方法有两个重载的实现,对应如上所需的参数不同,在上面的示例中,我们采用的是第二个实现。
QFontDialog.getFont(QFont, QWidget parent=None, str caption=QString(), QFontDialog.FontDialogOptions options=0) -> (QFont, bool)
第1个参数parent,用于指定父组件;
第2个参数caption,是QFileDialog对话框的标题;
第3个参数options,是对话框的一些参数设定,它的取值是 QFontDialog.FontDialogOptions ,每个选项可以使用 | 运算组合起来。
返回值为(QFont,bool),即返回值类型为tuple(元组)。