嵌入式Linux字体Qt

Qt通常使用fontconfig来提供访问系统字体的功能。如果fontconfig不可用,例如在空间有限的专业嵌入式系统中,Qt将回退到使用QBasicFontDatabase。在这种情况下,Qt应用程序将在Qt的lib/fonts/目录中查找字体。Qt将自动检测预渲染字体和TrueType字体。

Qt使用FreeType 2字体引擎生成字体输出。支持的格式取决于本地安装的FreeType库的版本。当使用QBasicFontDatabase时,Qt还支持Qt预渲染字体格式(QPF2),一种轻量级不可缩放的字体格式。QPF2是Qt for Embedded Linux 4.x的本地格式。

所有支持的字体都使用Unicode字符编码。大多数今天可用的字体确实这样做了,但它们通常不包含所有的Unicode字符。一个完整的16点Unicode字体需要超过1MB的内存。

FreeType格式

FreeType 2库可以支持以下字体格式:

  • TrueType (TTF)
  • PostScript Type 1 (PFA/PFB)
  • 位图分布格式 (BDF)
  • CID键入的Type 1
  • 紧凑字体格式 (CFF)
  • OpenType字体
  • 基于SFNT的位图字体
  • 便携式编译格式 (PCF)
  • Microsoft Windows字体文件格式 (Windows FNT)
  • 便携式字体资源 (PFR)
  • 类型42(有限支持)

可以向FreeType 2字体引擎添加模块以支持其他类型的字体文件。有关更多信息,请参阅字体引擎的官方网站:http://freetype.sourceforge.net/freetype2/index.html

使用FreeType渲染的字体在应用程序之间高效共享,从而减少内存需求并加快文本渲染速度。

Qt预渲染字体(QPF2)

Qt预渲染字体(QPF2)是一种架构无关、轻量级且不可缩放的字体格式。

Qt附带跨平台的makeqpf工具,位于tools目录中,该工具可从系统字体生成QPF2文件。

QPF2支持抗锯齿和复杂的书写系统,使用来自相应TrueType字体的信息(如果系统上有),格式设计为直接映射到内存中。相同的格式用于在应用程序之间共享非预渲染字体中的字型。

© 2024 Qt公司有限公司。本文件中包含的内容的版权属于其各自的所有者。本文件中提供的文档受免费软件基金会发布的《GNU自由文档许可证》(版本1.3)的条款许可。GNU自由文档许可证版本1.3。Qt及其相关标志是芬兰及/或其他国家Qt公司有限公司的商标。所有其他商标均为各自所有者的财产。