天天看點

QT中的font類型介紹

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政策,自動選擇預設字型。