- 解決 Ubuntu 平台無法在 Qt5 切換 Fcitx 輸入法的問題
解決 Ubuntu 平台無法在 Qt5 切換 Fcitx 輸入法的問題
參考資料:
http://www.cnblogs.com/cposture/p/5397694.html
使用 Python 3 啟動 Leo editor、QtCreator,甚至是自己的 PyQt 專案時,會發生無法在視窗內使用英文以外的輸入法。
在 Qt4 時,這個功能可以直接在 Qt Setting 中選擇。Qt5 則是依賴「fcitx-qt5」這個套件,使用 apt 檢查時,會顯示已經安裝並為最新版。
但是安裝 Qt 時的 fcitx-qt5 套件沒有對應到作業系統的 Fcitx 版本時,就要手動 make 了。
在編譯 fcitx-qt5 前,先確認已經安裝最新的 CMake。
示範的 Qt 安裝位置為 /opt/Qt/
,版本為 5.6,請根據自身版本做調整。
這些流程在 14.04 和 16.04 中是大同小異的,並沒有太大分別。
編譯 fcitx-qt5
從官方倉儲下載 fcitx-qt5,進入該資料夾中:
$git clone https://github.com/fcitx/fcitx-qt5 $cd fcitx-qt5
接著準備編譯 fcitx-qt5。
$cmake . $make $sudo make install
在使用 CMake 時會發生如下問題。
extra-cmake-modules
錯誤訊息:
CMake Error at CMakeLists.txt:8 (find_package): Could not find a package configuration file provided by "ECM" (requested version 1.4.0) with any of the following names: ECMConfig.cmake ecm-config.cmake Add the installation prefix of "ECM" to CMAKE_PREFIX_PATH or set "ECM_DIR" to a directory containing one of the above files. If "ECM" provides a separate development package or SDK, be sure it has been installed. -- Configuring incomplete, errors occurred!
到下面網址下載 CMake 額外模組:
https://launchpad.net/ubuntu/+source/extra-cmake-modules/1.4.0-0ubuntu1
解壓縮進入,編譯並安裝模組。編譯前必須指定 CMAKE_PREFIX_PATH 位置到 Qt GCC 的 CMake 上。
$export CMAKE_PREFIX_PATH="/opt/Qt/5.6/gcc_64/lib/cmake/" $cmake . $make $sudo make install
xkbcommon
錯誤訊息:
-- Found PkgConfig: /usr/bin/pkg-config (found version "0.26") -- Could NOT find XKBCommon_XKBCommon (missing: XKBCommon_XKBCommon_LIBRARY XKBCommon_XKBCommon_INCLUDE_DIR) CMake Error at /usr/share/cmake-2.8/Modules/FindPackageHandleStandardArgs.cmake:108 (message): Could NOT find XKBCommon (missing: XKBCommon_LIBRARIES XKBCommon) (Required is at least version "0.5.0")
到 http://xkbcommon.org/ 下載最新的穩定版本。
解壓縮後進入資料夾,安裝時需要用到 bison 套件。
$sudo apt-get install bison $./configure --prefix=/usr --libdir=/usr/lib/x86_64-linux-gnu --disable-x11 $make $sudo make install
安裝 fcitx-qt5
若順利執行 CMake 並成功編譯,會在 platforminputcontext
出現 fcitx-qt5 的程式庫,名為 libfcitxplatforminputcontextplugin.so
。
接著刪除 Qt 內的 fcitx-qt5 套件:
$sudo rm -f /opt/Qt/5.6/gcc_64/plugins/platforminputcontexts/libfcitxplatforminputcontextplugin.so $sudo rm -f /opt/Qt/Tools/QtCreator/lib/Qt/plugins/platforminputcontexts/libfcitxplatforminputcontextplugin.so
然後進入 platforminputcontext
資料夾,先讓該程式庫「可執行化」後再複製。
$sudo chmod +x libfcitxplatforminputcontextplugin.so $sudo cp libfcitxplatforminputcontextplugin.so /opt/Qt/5.6/gcc_64/plugins/platforminputcontexts/ $sudo cp libfcitxplatforminputcontextplugin.so /opt/Qt/Tools/QtCreator/lib/Qt/plugins/platforminputcontexts/
然後設定 Qt5 的預設輸入法為 Fcitx。
直接執行下面這兩個命令,若是登出或重新開機失效,則要到 .bashrc 文件中加入。
$export XMODIFIERS=@im=fcitx $export QT_IM_MODULE=fcitx
重新啟動 Qt 相關的程式,便能使用 Fcitx 切換其他輸入法了。
Comments
comments powered by Disqus