【Qt移植到linux】問題 qt界面無法輸入中文,中文不顯示,亂碼等問題


我的系統是fedora15英文環境,qt4.7.4
問題1、開始的時候無法輸入中文,無法切換輸入法
問題2、qt界面中的按鈕等中文不顯示,這是爲什麼呢
浪費了我好多天,參考了網上好多資料。才最後解決前面的兩個問題。

【Qt移植到linux】問題7 qt界面中文不顯示,亂碼等問題 - 柳北風兒 - 柳北風兒~~~~~~~欲宇仙炅
 
 

解決方法:
1、通過下面方法可以實現在qtcreator輸入中文,切換輸入法:
      1)、首先要安裝ibus輸入法《fedora中安裝IBus的中文輸入法(pinyin)》

2)、安裝IBus-qt4 (fedora15是自帶的)

yum install ibus-qt4

3)、終端輸入:vi ~/.profile ,在.profile中添加一下內容。(也可以在系統環境變量:/etc/profile中添加)。關於配置環境變量的知識,參考《Sheell配置文件 環境變量設置》

export XMODIFIERS="@im=ibus"
export GTK_IM_MODULE=ibus
export QT_IM_MODULE=xim
export ibus &
export LC_CTYPE=zh_CN.utf8

 4)、重啓就ok了。

解釋:
/etc/X11/xinit/xinput.d/ibus.conf
【Qt移植到linux】問題7 qt界面中文不顯示,亂碼等問題 - 柳北風兒 - 柳北風兒~~~~~~~欲宇仙炅
      如果未安裝 ibus-qt, QT_IM_MODULE 會自動設置爲 xim,所以還是可以了錄入中文。而 xim 又是配置爲使用 ibus。
所以,如果未裝 ibus-qt,GTK程序會直接使用ibus, QT程序會通過xim使用ibus。

2、通過下面方法可以解決qt界面運行後,無法顯示中文

a、直接在qt源碼目錄下configure出錯
經過網上的一番搜索,發現是缺少fontconfig造成的,於是重新configure:

#./configure -fontconfig

b、在fontconfig下面make出錯
問題又來了,configure未通過,提示Fontconfig未通過,於是進入/config.tests/x11/fontconfig目錄,執行make,發現缺少freetype相關的頭文件,首先保證freetype開發庫已經安裝:

#yum install freetype
#yum install freetype-devel 

再次在這裏make,還是出錯,發現缺少fontconfig開發庫,於是

#yum install fontconfig-devel

再次make,不再出錯。
錯誤情況介紹:

錯誤1: ft2build.h: No such file or directory

命令yum install fontconfig-devel問題解決。

錯誤2: /usr/include/ft2build.h:56: fatal error: freetype/config/ftheader.h: No such file or directory

命令 ln -s /usr/include/freetype2/freetype/ /usr/include/freetyp問題解決。

c、然後進入Qt源代碼目錄,再次執行

#./configure -fontconfig

通過。
d、發佈帶中文字庫的qt

#gmake
#gmake install

完成。

運行結果如下:

【Qt移植到linux】問題7 qt界面中文不顯示,亂碼等問題 - 柳北風兒 - 柳北風兒~~~~~~~欲宇仙炅

這個時候終端輸入:

#fontconfig &

查看,font標籤窗口,裏面已經有中文字庫支持了

【Qt移植到linux】問題7 qt界面無法輸入中文,中文不顯示,亂碼等問題 - 柳北風兒 - 柳北風兒~~~~~~~欲宇仙炅
 
備註1:
在linux上,qt中其實不需要更改編碼,就可以正常顯示中文。
既不需要在main函數中加入如下代碼,也不需要在qtcreator選項中配置文件編碼。qt默認的UTF-8 有BOM的格式,已經很好的解決了中文亂碼問題。

 QTextCodec *codec = QTextCodec::codecForName("UTF-8");
    QTextCodec::setCodecForTr(codec);
    QTextCodec::setCodecForLocale(codec);
    QTextCodec::setCodecForCStrings(codec);

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章