Qt嵌入式linux中的字体
Qt 5.10.1
Qt通常使用fontconfig来提供对系统字体的访问。 如果fontconfig不可用,例如 在空间非常宝贵的专用嵌入式系统中,Qt将回归到使用QBasicFontDatabase。 在这种情况下,Qt应用程序将在Qt的lib/fonts/
目录中查找字体。 Qt将自动检测预渲染字体和TrueType字体。
Qt使用FreeType 2字体引擎生成字体输出。 支持的格式取决于FreeType库的本地安装版本。 当使用QBasicFontDatabase时,Qt还支持Qt Prerendered Font格式(QPF2),这是一种轻量级的不可缩放字体格式。 QPF2是嵌入式Linux 4.x的Qt原生格式。
所有支持的字体都使用Unicode字符编码。 今天可用的大多数字体都可以,但它们通常不包含所有Unicode字符。 完整的16点Unicode字体使用超过1 MB的内存。
FreeType格式
FreeType 2库可以支持以下字体格式:
- TrueType (TTF)
- PostScript Type1 (PFA/PFB)
- Bitmap Distribution Format (BDF)
- CID-keyed Type1
- Compact Font Format (CFF)
- OpenType fonts
- SFNT-based bitmap fonts
- Portable Compiled Format (PCF)
- Microsoft Windows Font File Format (Windows FNT)
- Portable Font Resource (PFR)
- Type 42 (limited support)
可以将模块添加到FreeType 2字体引擎以支持其他类型的字体文件。有关更多信息,请参阅字体引擎自己的网站:http://freetype.sourceforge.net/freetype2/index.html。
使用FreeType呈现的字形在应用程序之间有效共享,从而减少了内存需求并加快了文本渲染速度。
Qt Prerendered字体(QPF2)
Qt Prerendered Font(QPF2)是一种独立架构,轻量且不可缩放的字体格式。
Qt附带了包含在tools目录中的跨平台makeqpf
工具,该工具允许从系统字体生成QPF2文件。
QPF2支持抗锯齿和复杂的写入系统,使用相应TrueType字体的信息(如果系统上存在)。该格式旨在直接映射到内存。相同的格式用于在应用程序之间共享来自非预渲染字体的字形。
旧版Qt预呈现字体(QPF)
由于兼容性原因,Qt支持传统的QPF格式。 QPF基于Qt/Embedded版本2和3的内部字体引擎数据结构。
请注意,文件名描述了字体,例如helvetica_120_50.qpf是12点Helvetica而helvetica_120_50i.qpf是12点Helvetica斜体。