Qt在Linux環(huán)境下字體模糊的解決方法
Qt在Linux環(huán)境下字體模糊,我一直以為是不兼容的問題,要想知道該怎樣解決這個(gè)問題,那么看本文的內(nèi)容吧。
這兩天一直在用Qt實(shí)現(xiàn)一個(gè)跨平臺(tái)的軟件。軟件之前在Windows上編寫的,后來放到里Ubuntu 10.10下編譯。程序運(yùn)行時(shí)遇到一個(gè)很棘手的問題,界面文本非常模糊。后來在網(wǎng)上查閱了好幾天的資料,經(jīng)歷了無數(shù)次實(shí)驗(yàn),最終解決了這一問題。下面以一個(gè)Demo程序來重現(xiàn)這一問題。
本文中的編譯平臺(tái)為:Ubuntu 10.10 x86版, g++ 4.4.5, Qt 4.7.3自己編譯的
首先看看我的Demo程序字體模糊時(shí)的截圖:
一個(gè)軟件界面的文本要是這樣子,根本無法接受。
有人說要通過qtconfig來修改默認(rèn)字體,可是我修改了好多次,都不成功,還是這樣。
最后找到原因,首先是我把Qt在Linux中默認(rèn)的字體“AR PL UKai CN”設(shè)置死了,如下圖所示:
為什么說設(shè)置死了呢?看上圖右下角,“字體族”一行,該行末尾后的小箭頭為紅色,這表示該屬性當(dāng)前不是默認(rèn)值,如果是默認(rèn)值,這個(gè)小箭頭應(yīng)該為灰色顯示。要解決字體模糊的問題,第一步應(yīng)該將界面上所有設(shè)置死的字體族改回默認(rèn)值,只需要選中要更改字體族的部件,在右側(cè)到屬性列表中點(diǎn)擊紅色到小箭頭,使其變灰,這樣就可以設(shè)置為默認(rèn)值了。
第二步,在終端中輸入“qtconfig”(不含引號(hào)),打開qt配置程序,如下圖所示:
在右側(cè)第二個(gè)選項(xiàng)卡“字體”中我們可以看到,字體族當(dāng)前為“ AR PL UKai CN ”,在下方的“樣例文本”中我們也可以看到,這幾個(gè)字同樣非常模糊,我們點(diǎn)擊字體族右邊到上下箭頭,彈出字體族選擇列表,如下圖所示:
因?yàn)槲覀兊哪繕?biāo)不僅要顯示英文,還要顯示中文,因此我們選擇“Song Ti”(宋體)這一項(xiàng),再修改點(diǎn)大小為11,此時(shí)“樣例文本”就清晰多了。如下圖所示:
設(shè)置完成之后,點(diǎn)擊“文件”菜單,選擇“保存”來保存當(dāng)前配置,如下圖所示:
此時(shí)應(yīng)該能立即看到更改后的效果,如下圖所示:
Qt配置程序界面的字體已經(jīng)變得清晰多了,那么我們的程序是不是也變化了呢?來看一下,如下圖所示:
從上圖我們可以看到,自己寫的程序界面中字體也非常清晰了,為了驗(yàn)證中文兼容性,我還在Text Edit部件中輸入了若干漢字,同樣沒有問題,字體依然清晰。整個(gè)過程中,除了第一步修改默認(rèn)字體后重新編譯了本程序,在對(duì)Qt配置進(jìn)行修改后并沒有也沒必要重新編譯程序。程序界面的字體就發(fā)生了變化。
值得注意的是,qtconfig工具只在Linux下存在,Mac版的Qt庫(kù)中是否有這個(gè)工具我還沒有驗(yàn)證,但Windows中肯定沒有。另外,在qtconfig工具中我設(shè)置的字體族為“Song Ti”,該字體在“點(diǎn)大小”小于11號(hào)時(shí)就又不清晰了。需要更小字體的朋友可以設(shè)置字體族為“Wenquanyi Bitmap Song”(基于位圖的文泉驛宋體),該字體設(shè)置為小字號(hào)時(shí)仍可顯示得很清晰。
小結(jié):Qt在Linux環(huán)境下字體模糊的解決方法,不知道有么有幫你解決問題,希望本文對(duì)你有幫助。