QT/E中的字体

本文来源于 http://doc.trolltech.com/3.3/emb-fonts.html

QT/E 支持以下四种字体文件

1.       TrueType(TTF)   可缩放的矢量字体,显示用。

2.       Postscript Type1 (PFA/PFB) 可缩放的矢量字体,打印机使用。

3.       Bitmap Distribution Format fonts (BDF) 不可缩放的像素字体。最好不要在产品系统中使用,其载入速度很慢且占用了大量的存储空间。

4.       Qt Prerendered Font (QPF) 轻量级的不可缩放字体, QT/E 专用。

开启或关闭对这些字体 (1-3) 的支持可以参照 qfeatures.h 中的宏定义, 4 则是始终支持的。为了提高效率,可以先开启 1-3 的支持,然后将其保存为格式为 4 的文件,最后再关闭对 1-3 的支持。具体可参考 makeqpf 命令 ( 位于 tools 目录下 )

makeqpf [-A] [-f spec-file] [font ...]

-A - Render and save all fonts in fontdir

-f - File of lines: fontname character-ranges e.g. "smoothtimes 0-ff,20a0-20af"

font - Font to render and save

      

使用 TTF 字体时,每个指定大小的字符只有在第一次显示时才会被渲染。而 BDF 字体则是第一次使用该字体时所有字符都被渲染。使用 QPF 字体时,每个字符都按照 Qt 图形绘制的格式进行存储,在绘图时,只需要将字符数据映射过来即可,而不必像其它格式一样要先载入并转化、渲染。

TTF, PFA, QPF 都能采用光滑的抗锯齿方式进行渲染。

QT/E 使用的所有字体都采用 Unicode 方式进行编码。

QT/E 应用程序运行时,会先去找

$QTDIR/lib/fonts/fontdir /usr/local/qt-embedded/lib/fonts/fontdir

里面定义了程序可使用的字体,定义格式为:

name file renderer italic weight size flags

name: Helvetica, Times, etc.

file:  helvR0810.bdf, verdana.ttf, etc.

renderer: BDF or FT

italic: y or n

weight: 50 is normal, 75 is bold, etc.

size: 0 表示可缩放 120 12pt 表示字体大小为 12

flags s 表示抗锯齿 u/a 表示保存字体时的范围为 unicode 还是 ascii

 

上面的 dd 是对于 TTF BDF 字体来说的,对 QPF 字体,它们是直接通过 *.qpf 文件载入的, *.qpf 文件的命名格式为:

name _ size _ weightitalicflag .qpf

name helvetica, times, etc

size 120 12pt 表示字体大小为 12

italicflag i 表示斜体,没有 i 则表示正常

weight 50 is normal, 75 is bold, etc.

 

如果应用程序运行时带有- savefonts 的参数,那么当一个 TTF BDF 的字体被使用时,一个相应的 QPF 文件就会被保存。对于那些内存要求比较苛刻的程序,还可以生成只包含指定文字的 QPF 文件,具体参考 QMemoryManager::savePrerenderedFont()

此外,还可以生成旋转后的字体,此时应用程序要加上旋转参数。

你可能感兴趣的:(File,存储,qt,ttf,fonts,postscript)