Pyqt5系列(四)-基本界面组件之Dialog(2)

在大部分的操作系统中,为了更好的实现人机交互,windows以及linux中均为提供一系列的对话框来完成特定场景下的功能,诸如字体大小选择,字体颜色选择等等。PyQt5中定义了一些列的标准对话框的类,让使用者能够方便和快捷的通过各个类完成字体大小、颜色,以及文件的选择.

QFontDialog

#-*- coding:utf-8 -*-
'''
QFontDialog
'''
__author__ = 'Tony Zhu'

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_()) 

运行之后的效果:
这里写图片描述
这里写图片描述
控件说明:

控件类型控件名称作用
QPushButtonfontButton打开字体选择对话框
QLineEditfontLineEdit显示设定字体类型的效果

示例说明:
通过字体选择对话框选择对应的字体,并且选择的字体效果设定在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(元组)。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值