1. 程式人生 > >解決Qt5應用在麒麟Linux下不能輸入中文問題

解決Qt5應用在麒麟Linux下不能輸入中文問題

    解決Qt5在麒麟Linux下不能輸入中文的問題,需要了解fcitx並安裝fcitx的外掛庫到應用程式中並啟動fcitx,Fcitx是 (Free Chinese Input Toy for X) 的英文縮寫,中文名為小企鵝輸入法,是一個以 GPL 方式釋出的輸入法框架, 編寫它的目是為桌面環境提供一個靈活的輸入方案,徹底解決在GNU/Linux下沒有一個好的中文輸入法的問題。

用Qt編寫的應用程式,在Linux系統上回出現切換不到中文輸入的情況,解決Linux下不能輸入中文的方法如下:

1. 在GitHub上個下載fcitx外掛原始碼,地址如下:https://github.com/fcitx/fcitx-qt5

    下載fcitx輸入法框架的原始碼到本地,且本地必須安裝了cmake才能進行後續的編譯輸出。

2. 修改根目錄檔案 CMakeLists.txt, 在"set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH} ${ECM_KDE_MODULE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/cmake)"行之後加入:

set(Qt5Core_DIR /XXX/Qt5.5.1/5.5/gcc_64/lib/cmake/Qt5Core/)

set(Qt5Gui_DIR /XXX/Qt5.5.1/5.5/gcc_64/lib/cmake/Qt5Gui/)

set(Qt5Widgets_DIR /XXX/Qt5.5.1/5.5/gcc_64/lib/cmake/Qt5Widgets/)

set(Qt5DBus_DIR /XXX/Qt5.5.1/5.5/gcc_64/lib/cmake/Qt5DBus/)

3. 編譯原始碼:

cmake .

make

sudo make install

    主要是想得到通過原始碼編譯到的。考慮到有些機器可能安裝的環境不全,導致編譯輸出庫受阻,特將我自己編譯的Linux動態庫libfcitxplatforminputcontextplugin.so以及詳細的處理步驟整理上傳至CSDN,地址如下:

 4. 把編譯得到 libfcitxplatforminputcontextplugin.so 拷貝到 Qt5.5安裝目錄的 

/XXX/Qt5.5.1/5.5/gcc_64/plugins/platforminputcontexts/

/XXX/Qt5.5.1/Tools/QtCreator/bin/plugins/platforminputcontexts/

下(拷貝之後記得加 755 許可權) 。

/***********************************位置註解**********************************/

(1) /XXX/Qt5.5.1/5.5/gcc_64/plugins/platforminputcontexts/ 這個目錄是用qt creator編譯出的程式執行時呼叫外掛的目錄,在編譯出的程式下新建

plugins/platforminputcontexts/ 目錄,再將libfcitxplatforminputcontextplugin.so放進去也是可以的。

(2) /XXX/Qt5.5.1/Tools/QtCreator/bin/plugins/platforminputcontexts/ 這個目錄是qt creator自己呼叫外掛的目錄,所以要想在qt creator中輸入中文,libfcitxplatforminputcontextplugin.so庫在這裡也要放一個。

/*******************************************************************************/

5. 如果是用Qt編譯的應用程式包,可將編譯好的libfcitxplatforminputcontextplugin.so庫直接放到plugins/platforminputcontexts/libfcitxplatforminputcontextplugin.so位置,然後重啟機器,應該就可以輸入中文了。

6. 如果以上五部正確執行後,還是不能輸入中文,則在 ~/.profile 或 /etc/profile 檔案末尾新增:

GTK_IM_MODULE=fcitx

export XIM_PROGRAM=fcitx

export XIM=fcitx

export QT_IM_MODULE=fcitx

export GTK_IM_MODULE=fcitx

export XMODIFIERS="@im=fcitx"

然後登出重啟機器,這樣就解決了不能輸入中文的問題了。

通過以上六部,基本就可以實現在麒麟Linux系統中不能輸入中文的問題了。