Qt在Linux環境下應用程序字體模糊的解決方法(先改成使用默認字體,然后使用qtconfig配置)


這兩天一直在用Qt實現一個跨平台的軟件。軟件之前在Windows上編寫的,后來放到里Ubuntu 10.10下編譯。程序運行時遇到一個很棘手的問題,界面文本非常模糊。后來在網上查閱了好幾天的資料,經歷了無數次實驗,最終解決了這一問題。下面以一個Demo程序來重現這一問題。

 

本文中的編譯平台為:Ubuntu 10.10 x86版, g++ 4.4.5, Qt 4.7.3自己編譯的

 

首先看看我的Demo程序文本模糊時的截圖:

字體非常模糊

 

一個軟件界面的文本要是這樣子,根本無法接受。

 

有人說要通過qtconfig來修改默認字體,可是我修改了好多次,都不成功,還是這樣。

最后找到原因,首先是我把Qt在Linux中默認的字體“AR PL UKai CN”設置死了,如下圖所示:

把界面的字體設置死了 

 

為什么說設置死了呢?看上圖右下角,“字體族”一行,該行末尾后的小箭頭為紅色,這表示該屬性當前不是默認值,如果是默認值,這個小箭頭應該為灰色顯示。要解決字體模糊的問題,第一步應該將界面上所有設置死的字體族改回默認值,只需要選中要更改字體族的部件,在右側到屬性列表中點擊紅色到小箭頭,使其變灰,這樣就可以設置為默認值了。

 

第二步,在終端中輸入“qtconfig”(不含引號),打開qt配置程序,如下圖所示:

打開Qt配置

 

在右側第二個選項卡“字體”中我們可以看到,字體族當前為“ AR PL UKai CN ”,在下方的“樣例文本”中我們也可以看到,這幾個字同樣非常模糊,我們點擊字體族右邊到上下箭頭,彈出字體族選擇列表,如下圖所示:

Qt配置中選擇字體族

 

因為我們的目標不僅要顯示英文,還要顯示中文,因此我們選擇“Song Ti”(宋體)這一項,再修改點大小為11,此時“樣例文本”就清晰多了。如下圖所示:

Qt配置中選擇“Song Ti”字體族

 

設置完成之后,點擊“文件”菜單,選擇“保存”來保存當前配置,如下圖所示:

保存對Qt默認字體的配置

 

此時應該能立即看到更改后的效果,如下圖所示:

更改Qt配置后的效果

 

Qt配置程序界面的字體已經變得清晰多了,那么我們的程序是不是也變化了呢?來看一下,如下圖所示:

 

更改Qt配置后,驗證自己的程序是否也發生了改變

 

從上圖我們可以看到,自己寫的程序界面中字體也非常清晰了,為了驗證中文兼容性,我還在Text Edit部件中輸入了若干漢字,同樣沒有問題,字體依然清晰。整個過程中,除了第一步修改默認字體后重新編譯了本程序,在對Qt配置進行修改后並沒有也沒必要重新編譯程序。程序界面的字體就發生了變化。

 

值得注意的是,qtconfig工具只在Linux下存在,Mac版的Qt庫中是否有這個工具我還沒有驗證,但Windows中肯定沒有。另外,在qtconfig工具中我設置的字體族為“Song Ti”,該字體在“點大小”小於11號時就又不清晰了。需要更小字體的朋友可以設置字體族為“Wenquanyi Bitmap Song”(基於位圖的文泉驛宋體),該字體設置為小字號時仍可顯示得很清晰。

http://blog.csdn.net/chaijunkun/article/details/6448295


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM