問題
在Linux環境下,用Qt編寫的程序運行時不能在諸如輸入框、文本框中輸入中文(不會激活中文輸入法)。
注意與輸入法類型有關(基於iBus或Fcitx)
原因
Qt程序的中文輸入支持需要用Qt插件,Qt自帶的插件中,支持iBus輸入法,所以如果你恰好在用iBus輸入法則可以正常輸入。
如果要支持Fcitx輸入法,需要插件支持。
解決方法
由Qt開發的軟件界面不能輸入中文
安裝fcitx-libs-qt或fcitx-libs-qt5,在計算機中搜索libfcitxplatforminputcontextplugin.so文件,例如在我的計算機上,此文件位於
/usr/lib/x86_64-linux-gnu/qt5/plugins/platforminputcontexts/libfcitxplatforminputcontextplugin.so
找到Qt的安裝目錄,將上述文件復制到安裝目錄下的plugins/platforminputcontexts子目錄下。例如我的電腦上是[Qt安裝目錄]/5.7/gcc_64/plugins/platforminputcontexts。
重新運行程序即可。
QtCreator本身的編輯器不能輸入中文
如果是QtCreator本身編輯器不能輸入中文,則將上述文件拷貝至Qt安裝目錄的[Qt安裝目錄]/Tools/QtCreator/lib/Qt/plugins/platforminputcontexts或者[Qt安裝目錄]/Tools/QtCreator/bin/plugins/platforminputcontexts。
對於不同版本的Qt,插件路徑可能略有不同,但一定是在[Qt安裝目錄]/Tools/QtCreator/中,可以自己搜索一下。拷貝完成后,重新啟動QtCreator即可生效。
