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

Posted yinsedeyinse

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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里的字体。

以上是关于GUI学习之十九——QFontComboBox学习总结的主要内容,如果未能解决你的问题,请参考以下文章

python学习之GUI

GUI学习之三——QObject学习总结

python学习之GUI(pygame)

GUI学习之十四——QAbstractSpinBox学习总结

GUI学习之二十二——QRubberBand学习总结

GUI学习之二十七——布局管理学习总结