GUI学习之十九——QFontComboBox学习总结

我们上一章学习了QComboBox的用法,这一章我们来看一下它的一个比较常用的子类:QFontComboBox()。

一.描述

  QFontComboBox()是QComboBox()的一个子类,但是它的内容是不能被编辑的,主要是用来选择字体。

二.功能作用

  1.设置和获取当前的字体

QFontComboBox.setCurrentFont(self, f: QtGui.QFont)      #设置字体
QFontComboBox.currentFont()                             #获取字体——>QFont

注意的是当前显示的字体都是宋体的,即便选择了别的字体在文本框里显示效果都是宋体。

  2.设置字体过滤器

  由于控件提供能够选择的字体种类太多,我们可以用过滤器来过滤控件的提供选项

QFontComboBox.setFontFilters(self, filters: typing.Union['QFontComboBox.FontFilters', 'QFontComboBox.FontFilter'])
#type: 'QFontComboBox.FontFilter'
AllFonts = ...           #所有字体
ScalableFonts = ...      # 可缩放
NonScalableFonts = ...    # 不可缩放
MonospacedFonts = ...    # 等宽字体
ProportionalFonts = ...   # 比例字体

三.信号

  除了继承的父类信号外,QFontComboBox()还有另外一个信号

QFontComboBox.currentFontChanged(self, f: QtGui.QFont)

  信号还传递了选择的字体作为参数。我们可以这样使用

from PyQt5.Qt import *
import sys

class Window(QWidget):
    def __init__(self):
        super().__init__()
        self.UI_test()



    def UI_test(self):
        fcb = QFontComboBox(self)
        fcb.resize(200,30)
        fcb.setEditable(False)   #一般情况字体选择控件是不能够被编辑的
        self.resize(500,300)
        self.fcb = fcb
        self.label = QLabel(self)
        self.label.move(100,100)
        self.label.setText('hello,你是谁?')
        fcb.currentFontChanged.connect(self.font_change)

    def font_change(self,font):
        self.label.setFont(font)
        self.fcb.setFont(font)
        pass
if __name__ == '__main__':
    app = QApplication(sys.argv)
    window = Window()
    window.show()
    sys.exit(app.exec_())
QFontComboBox()案例

  出来就是这个效果

  通过选择字体,改变了字体选择框和label里的字体。

原文地址:https://www.cnblogs.com/yinsedeyinse/p/10962326.html