zoukankan      html  css  js  c++  java
  • PyQt(Python+Qt)学习随笔:字体writingSystem、ProportionalFonts、MonospacedFonts的含义以及QFontComboBox字体组合框详解

    一、引言

    在介绍QFontComboBox之前,我们先简单介绍一下字体相关概念。

    • 书写系统(writingSystem) :书写系统包括一个或多个文字集和一系列规则,一个书写系统至少对应一种语言,可以用书写系统的符号集合和规则比如拼写规则、大小写等来表达对应的语言,如汉字、日文、罗马字等
    • 比例字体(ProportionalFonts)和等宽字体(MonospacedFonts):比例字体每个字母宽度按一定比例自动调整,比例字体使单词的整体可读性增强了;等宽字体则是每个字母所占宽度相同。如图:
      在这里插入图片描述
    • 缩放字体(ScalableFonts):缩放字体可调整大小(扩大或缩小)而不导致扭曲的字体,各个字符的轮廓以数学公式形式保存,完整字符集的所有公式称轮廓字体,如truetype字体
    • 字体的kerning属性
      kerning属性用于控制字体在输出时是否启用kerning控制,启用kerning控制用于调整字符间距,且基本上是英文字符形状的间距,因为英文字符形状都是不规则的,有宽有窄,有的圆乎乎,有的棱角分明,就会导致排列在一起的时候疏密不一致,而kerning可以有效利用字符形状间的间隙,使字形之间的空间更加相似。
      对应的访问方法为QFont类的kerning()和setKerning(bool enable)。
    • 字体Antialiasing属性
      Antialiasing属性用于控制是否启用反走样抗锯齿,即字体在缩放时防止变形。

    在QFont中并没有Antialiasing属性,该属性实际上对应的是QFont的styleStrategy属性的某几个取值,可以通过QFont的方法styleStrategy()和setStyleStrategy(setStyleStrategy())来访问,对应属性取值类型为枚举类型 QFont.StyleStrategy,对应取值请参考官网说明。

    QFontComboBox是从QComboBox派生的,是一个允许用户选择字体的组合框。
    组合框中下拉列表中是按字体名字母顺序排列的字体列表。

    二、QFontComboBox属性和方法

    QFontComboBox在Designer中可以设置的属性很简单,请见下图:
    在这里插入图片描述
    QFontComboBox除了属性相关方法和构造方法外,并无其他单独的方法。相关属性及访问方法如下:

    1. writingSystem:书写系统,其类型为枚举类型QFontDatabase.WritingSystem,用于控制选择字体系列,具体设置请参见官网。该属性值缺省为QFontDatabase.Any,表示所有字体系统都可以支持。可以通过writingSystem()、setWritingSystem()方法来访问;
    2. fontFilters:字体过滤,用于控制显示哪些类型的字体,包括选择是否可缩放、是否等宽字体、是否比例字体等属性,对应类型为枚举类型QFontComboBox.FontFilter,具体设置请参见官网。缺省值为QFontComboBox.AllFont,表示所有字体都可以使用。可通过fontFilters()、setFontFilters()方法来访问;
    3. currentFont :当前选择字体,类型即为QFont类型,可通过方法currentFont()、setCurrentFont()访问,当其值改变时,会发出currentFontChanged(QFont font)信号。但是当用户选择新字体时,除了发出currentFontChanged()信号之外,还会发出currentIndexChanged()信号。

    老猿Python,跟老猿学Python!

  • 相关阅读:
    tinyhttp源码阅读(注释)
    BSON 1.0版本规范(翻译)
    linux下编译qt5.6.0静态库——configure配置
    springboot(二):web综合开发
    Linux 4.10中两个新特性与我的一段故事
    [Perforce]password (P4PASSWD) invalid or unset. 的错误解决
    Cross compiling coreutils and generate the manpages
    【蓝桥杯】PREV-21 回文数字
    【Qt】StackedWidget
    凡人视角C++之string(上)
  • 原文地址:https://www.cnblogs.com/LaoYuanPython/p/13643563.html
Copyright © 2011-2022 走看看