Qt嵌入式linux中的字体

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wyy626562203/article/details/82500308

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斜体。

猜你喜欢

转载自blog.csdn.net/wyy626562203/article/details/82500308