QT中的font类型介绍

来源:互联网 发布:js移动轨迹 编辑:程序博客网 时间:2024/06/06 09:39


QTE(Qt for Embedded)使用FreeType 2字体引擎来支持字体显示。比如TrueType(ttf),Postscript Type(PFA/PFB),Bitmap Distrubution Format fonts(BDF)等。同时QTE自己还支持Qt Prerendered Font(QPF)字体,是一种位图字体,不可缩放,作为QTE的本地字体。

TrueType是由苹果和微软为主开发的矢量字体技术(与之对应的是点阵字体),可以不变形的放大和缩小,文件名一般是*.fon、*.ttf和*.ttc,ttc是ttf的新标准,而fon是以前的老标准。目前有FreeType的字体引擎,作为一个软件库,能够帮助处理TrueType字体的显示。

BDF字体是X窗口系统的位图字体格式,其文件分成两部分,第一部分是描述整体属性的header,第二部分则是每个字型的属性和位图数据。

QPF字体格式仅用于QT/Embedded的不可缩放字体,属于QTE的官方字体,可用工具makeqpf,将ttf文件生成qpf字体文件。

在Qt中直接使用TTF字体或者PFA/PFB这些矢量字体,应用程序会在显示的时候需要将矢量信息计算成点阵形式,会占用大量的计算能力和RAM。如果选用BDF字体,则速度非常慢,而且也需要占用较多资源。QPF是位图字体,不需要再显示时计算点阵,且由于不可缩放,位图直接拿去显示即可,速度和资源占用是最好的。

当QTE应用启动时,会到$QT/lib/fonts目录下去寻找对应的字体文件,包括QBF和TTF字体文件,为兼容期间也会继续读取该目录下的fontdir文件。在代码中使用QFont来应用字体,如果选定字体不存在,QFont有内在的match策略,自动选择默认字体。