這篇文章引用了較多其他作者的內容,也忘記引用的出處了,只能感謝了。以下轉入正題。
對於qt5.5,要下載libqt庫源碼自己編譯,參考解決Qt5 Creator無法切換輸入法(fcitx),Ubuntu中不能使用搜狗輸入法錄入漢字問題
Linux下有兩種輸入法,分別是ibus和fcitx,如果喜歡搜狗輸入法的話,需要安裝fcitx.
首先說第一種輸入法ibus.
一、ibus
安裝步驟如下:
第一:安裝IBus框架,
sudo apt-get install ibus ibus-clutter ibus-gtk ibus-gtk3 ibus-qt4
啟動IBus框架,在終端輸入:
im-switch -s ibus
安裝完IBus框架后注銷系統,保證更改立即生效。
注意,這里可能會出錯,提示如下:no configuration file “ibus” exists.解決辦法是修改im-switch的配置文件,步驟如下:
$ cd /etc/X11/xinit/xinput.d/ $ sudo cp default ibus $ sudo vim ibus
在Vim中編輯配置項:
XIM=ibus XIM_PROGRAM=/usr/bin/ibus-daemon XIM_ARGS="—xim"
創建好配置文件之后再重新啟動im-switch,就可以發現這回能夠選擇到ibus,而括號里面的就是我們的配置文件名,通過配置文件將設置指向了ibus的守護進程ibus-daemon,這樣每次X在啟動的時候就能自動關聯該輸入法,如下:
第三步:安裝拼音引擎
有下面幾種常用選擇:
IBus拼音:sudo apt-get install ibus-pinyin
IBUS五筆:sudo apt-get install ibus-table-wubi
谷歌拼音輸入法:sudo apt-get install ibus-googlepinyin
Sun拼音輸入法:sudo apt-get install ibus-sunpinyin
第四步:設置IBus框架
ibus-setup
設置IBUS
第五步:環境變量設置
通常情況下,IBus圖標(一個小鍵盤)會出現在桌面右上角的任務欄中。有時候這個圖標會自行消失,可使用以下命令,找回消失的IBus圖標:
ibus-daemon -drx
要啟用輸入法,還需要配置環境變量,具體如下(IBus支持 XIM 協議及 Gtk IM 模塊以及 Qt IM 模塊):
export GTK_IM_MODULE=ibus
export QT_IM_MODULE=ibus
export XMODIFIERS=@im=ibus
要啟用輸入法對qt的支持,步驟如下:
/usr/lib/x86_64-linux-gnu/qt5/plugins/platforminputcontexts/libibusplatforminputcontextplugin.so
將該文件復制到
qt安裝目錄/Tools/QtCreator/bin/plugins/platforminputcontexts(作用是使得qtcreator開發環境支持輸入法)
和
qt安裝目錄/5.3/gcc_64/plugins/platforminputcontexts(個人猜測是使得用編譯器編譯出來的qt程序也支持輸入法)
中
如果qt開發出來的程序不支持輸入法,那么可以在程序所在的目錄創建platforminputcontexts目錄,然后把libibusplatforminputcontextplugin.so拷貝進去,發布的時候與可執行程序一起發布,如果還是不行,重啟電腦,在重新運行可執行程序。
開機啟動Ibus
System >> Preferences >> Startup Applications
Click the button: Add
Name: ibus daemon
Command: /usr/bin/ibus-daemon -d
Comment: start ibus daemon when gnome start
System >> Preferences >> Startup Applications
Click the button: Add
Name: ibus daemon-open
Command: /usr/bin/ibus-daemon -drx
Comment: start ibus daemon when gnome starting
常用命令:
im-switch -s ibus #啟動ibus框架
ibus-setup #設置ibus框架
ibus-daemon -drx #通常情況下,IBus圖標(一個小鍵盤)會出現在桌面右上角的任務欄中。有時候這個圖標會自行消失,可使用以下命令,找回消失的IBus圖標
im-switch #設置系統輸入法
$ sudo killall ibus-daemon #重啟ibus
$ sudo ibus-daemon -d –xim
二、fcitx輸入法:
1、安裝fcitx for Qt5動態庫,從而得到需要的依賴庫
執行如下命令:sudo apt-get install fcitx-libs-qt5
安裝fcitx輸入法前端:sudo apt-get install fcitx-frontend-qt5
2、配置Fcitx環境變量:
export XMODIFIERS=@im=fcitx
export XIM=fcitx
export XIM_PROGRAM=fcitx
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
3.1讓qtcreator開發環境支持搜狗輸入法:
進入Qt安裝目錄的下面路徑:{path}是Qt的安裝目錄cd{path}(可用命令dpkg -L 包名看文件安裝路徑)
/Qt5.3.1/Tools/QtCreator/bin/plugins/platforminputcontexts
拷貝fcitx輸入法支持文件:執行如下命令 將支持文件copy 到上文的目錄sudo cp /usr/lib/x86_64-linux-gnu/qt5/plugins/platforminputcontexts/libfcitxplatforminputcontextplugin.so . (對於32位系統,對應的目錄為/usr/lib/i386-linux-gnu/qt5/plugins/platforminputcontexts/
)
為剛才的文件添加可執行命令: chmod+x libfcitxplatforminputcontextplugin.so 重啟Qt就可以使用搜狗輸入法了!!如果還是不行,重啟電腦,再重新打開qtCreator就可以了。 但是 原來的ctrl+空格是代碼提示快捷鍵,現在用於切換輸入法。這也好解決:
Qt creator--->工具--->選項--->環境--->鍵盤。然后找到Complete This修改之即可
3.2讓qt5開發出來的程序也支持搜狗輸入法:
發布程序時同時把拷貝到程序所在目錄,需要在工程目錄創建platforminputcontexts目錄,然后把/usr/lib/x86_64-linux-gnu/qt5/plugins/platforminputcontexts/libfcitxplatforminputcontextplugin.so拷貝到platforminputcontexts目錄,與程序一起發布,就可以讓qt開發出來的程序在其他機器也能支持fcitx輸入法了,如果還是不行,重啟電腦,重新運行可執行程序。
常用命令:
Im-switch -s fcitx切換當前輸入法為fcitx
im-switch -s fcitx -z default #將fcitx設為默認輸入法
總結
qt安裝目錄下/5.3/gcc_64/plugins這個目錄是用qt creator編譯出的程序運行時調用插件的目錄,所以這個輸入法插件要放到這。好像自己在編譯出的程序下新建
plugins/platforminputcontexts/目錄,再將libfcitxplatforminputcontextplugin.so放進去也是可以的。
qt安裝目錄下/Tools/QtCreator/bin/plugins/這個目錄是qt creator自己調用插件的目錄,所以要想在qt creator中輸入中文這里也要放一個。
測試結果:
測試環境: Linux gdlctech-System-Product-Name 3.13.0-24-generic #46-Ubuntu SMP Thu Apr 10 19:11:08 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
測試程序(以下程序同時運行時均可以正常使用輸入法,不沖突):
qt4.8.5(用自己系統安裝的
qtcreator以及其開發出來的程序)
qt5.3.1(32位的qtCreator可執行程序以及用它開發出來的程序)
Qt4.7.4(金山wps)
QQ程序(應該是qt4的某個版本)
注意事項:當ibus和fcitx輸入法同時運行時,切換輸入法會有沖突!!所以,不要把兩種輸入法同時運行!!
http://blog.csdn.net/u013281495/article/details/50560817