QT是目前在Linux操作系統(tǒng)平臺下應用最多的圖形用戶界面的底層庫,由其派生出的QT/Embedded大量用于嵌入式系統(tǒng)開發(fā)和研制中。
實際上,QT/Embedded提供給用戶的非ASCII碼的字庫一般比較少,在我們開發(fā)過程中用的嵌入式Linux系統(tǒng)中中文和日文的字庫都只有一個(不算不同的旋轉角),其中還存在字體大小不一樣的問題,因此在實際開發(fā)過程中我們在處理中文字體顯示時,最終使用這些工具開發(fā)出來的軟件的用戶就經常抱怨字體很難看,字體大小有時都不一致,因此定制自己的字庫,以便使得最終用戶能夠看到漂亮的中文顯示,這是使用QT/Embedded開發(fā)各種程序急需解決的一個問題。下面龍人嵌入式開發(fā)工作這首先向您介紹如何在嵌入式 Linux及下制作QPF字庫:
首先定制自己的字庫需要修改兩個文件,一個是FONTDIR,它是應用程序尋找當前系統(tǒng)中最適合自己需要的字庫的索引;另一個就是字庫文件了,可以有一個或者多個字庫文件,字庫文件是最終顯示的字的位圖或者矢量。它們都必須放在目錄/usr/qt/lib/fonts下(基于我們的平臺QT/Embedded,其它平臺可能有區(qū)別,下同)。
其次編寫具體的FONTDIR文件的內容如下所示:
fixed fixed_120_50.qpf QPF n 50 120
helvetica helvetica_80_50.qpf QPF n 50 80
helvetica helvetica_120_50.qpf QPF n 50 120 u
helvetica helvetica_120_75.qpf QPF n 75 120 u
helvetica helvetica_140_75.qpf QPF n 75 140
helvetica helvetica_180_75.qpf QPF n 75 180
文件中每行都標識一個特定的字庫,每個段的含義是:第一列為name,第二列為file,第三列為renderer,相當于字型格式,所以有BDF,TTT,QPF等選擇。第四列n表示iitalic,表示是否為斜體字。第五列表示weight,其中50表示Normal,75表示Bold。第六列表示size,例如:120表示12pt。第七列為flags,有下面三個選擇:s=smooth(anti-aliased)u =unicode range when saving (default is Latin 1 a = ASCII range when saving(default is Latin 1))
這樣一個QPF字庫就嵌入式Linux環(huán)境中生成了。