Qt 5中国語入力の問題
一、前言
このブログはQt 5で解決するためです.4とQt 5.5の下の中国語の入力の問題、ブロガーの使うQtバージョンはQt 5です.5.1,中国語入力方式は検索入力方式,オペレーティングシステムはubuntu 14.04
Qt5.3および以前のバージョンは、
/usr/lib/x86_64-linux-gnu/qt5/plugins/platforminputcontexts/
のlibfcitxplatforminputcontextplugin.so
からQt5.3.1/5.3/gcc_64/plugins/platforminputcontexts
および/Qt5.3.1/Tools/QtCreator/bin/plugins/platforminputcontexts
をコピーすることによって、Qtの中国語入力の問題を解決することができるが、Qt 5.4とQt 5.5、古い方法は失効して、原因はQt 5です.4以降、以前のQt 5バージョンではバイナリ互換性がなくなり、libfcitxplatforminputcontextplugin.so
は最新のfcitx-qt 5をコンパイルする必要があります.ブロガーコンパイルlibfcitxplatforminputcontextplugin.soはダウンロードして使用できますが、このファイルに実行権限を与えることを覚えておいてください.参考lieefuのブログ:Qt 5 Creatorは入力方式(fcitx)を切り替えることができなくて、Ubuntuの中で検索犬の入力方式を使って漢字を入力することができない問題を解決します
二、ソースコードからfcitx-qt 5をコンパイルする
cmakeとfcitx-libs-devをインストールします.
$ sudo apt-get install cmake
$ sudo apt-get install fcitx-libs-dev
Qtインストールパスに基づいてqmakeの環境変数を設定します.
$ export PATH="/home/zjl/Qt5.5.1/5.5/gcc_64/bin":$PATH
github:fcitx/fcitx-qt 5からソースコードをダウンロードします.
$ cd work/
$ git clone https://github.com/fcitx/fcitx-qt5
コンパイル開始:
$ cd work/fcitx-qt5/
$ cmake .
$ make
$ sudo make install
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!
このページへhttps://launchpad.net/ubuntu/+source/extra-cmake-modules/1.4.0-0 ubuntu 1 extra-cmake-modulesをダウンロード1.4.0.orig.tar.xz
解凍後のコンパイルインストール:
$ cd work/extra-cmake-modules-1.4.0/
$ cmake .
$ make
$ sudo make install
CMake Error at /home/lieefu/Qt5.5.0/5.5/gcc_64/lib/cmake/Qt5Gui/Qt5GuiConfigExtras.cmake:9 (message):
Failed to find "GL/gl.h" in "/usr/include/libdrm".
次のパッケージをインストールします.
$ sudo apt-get install libgl1-mesa-dev libglu1-mesa-dev
次のようにエラーを報告します.
CMake Warning at tests/CMakeLists.txt:28 (find_package):
Could not find a package configuration file provided by "Qt5LinguistTools"
with any of the following names:
Qt5LinguistToolsConfig.cmake
qt5linguisttools-config.cmake
Add the installation prefix of "Qt5LinguistTools" to CMAKE_PREFIX_PATH or
set "Qt5LinguistTools_DIR" to a directory containing one of the above
files. If "Qt5LinguistTools" provides a separate development package or
SDK, be sure it has been installed.
-- Looking for Sphinx Documentation Builder...
-- Sphinx Documentation Builder not found - documentation will not be built (see http://sphinx-doc.org/)
Qt 5 LinguistToolsが存在するパスを、エラーメッセージに従って環境変数CMAKE_に追加します.PREFIX_PATH:
$ export CMAKE_PREFIX_PATH="/home/siat/Qt5.5.1/5.5/gcc_64/lib/cmake"
-- 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")
解決策は、次のパッケージをインストールすることです.
$ sudo apt-get install bison
$ cd work/
$ wget http://xkbcommon.org/download/libxkbcommon-0.5.0.tar.xz
$ tar xf libxkbcommon-0.5.0.tar.xz
$ cd libxkbcommon-0.5.0/
$ ./configure --prefix=/usr --libdir=/usr/lib/x86_64-linux-gnu --disable-x11
$ make
$ sudo make install
ここで注意しなければならないのはlieefuのブログ
./configure
の後ろにパラメータが付いているときのフォーマットが間違っていて、パラメータ接頭辞は--
で—
ではなく、./configure
を実行するにはcd libxkbcommon-0.5.0/
フォルダが必要です.これらを詰めてからfcitx-qt 5に戻ってコンパイルします
$ cd work/fcitx-qt5/
$ cmake .
$ make
$ sudo make install
最終的に必要な
libfcitxplatforminputcontextplugin.so
ファイルは/work/fcitx-qt5/platforminputcontext
です三、libfcitxplatforminputcontextpluginを置換する。soファイル
次に、
libfcitxplatforminputcontextplugin.so
をQt5.5.1/Tools/QtCreator/bin/plugins/platforminputcontexts/
およびQt5.5.1/5.5/gcc_64/plugins/platforminputcontexts/
にコピーするだけでよい.操作を容易にするために、
libfcitxplatforminputcontextplugin.so
ファイルをメインフォルダ~/
にコピーし、次のコマンドを実行します.$ cd Qt5.5.1/Tools/QtCreator/bin/plugins/platforminputcontexts/
$ sudo rm libfcitxplatforminputcontextplugin.so
$ sudo cp ~/libfcitxplatforminputcontextplugin.so .
$ sudo chmod +x libfcitxplatforminputcontextplugin.so
$ cd Qt5.5.1/5.5/gcc_64/plugins/platforminputcontexts/
$ sudo rm libfcitxplatforminputcontextplugin.so
$ cp ~/libfcitxplatforminputcontextplugin.so .
$ sudo chmod +x libfcitxplatforminputcontextplugin.so
注意
cp
命令末尾の.
号、rm
命令は古いlibfcitxplatforminputcontextplugin.so
を削除するため、また自分のQtインストール経路とバージョンによってplatforminputcontexts
フォルダの経路を特定することに注意してくださいファイルを置き換えてQtを再度開くと、Ctrl+スペースで検索中国語の入力方法を切り替えることができます
検索入力方式を切り替えても中国語が入力できない場合はパソコンを再起動します(なぜか、ブロガーのノートパソコンは何をしても再起動したり再開したりしますが、もう1台のデスクトップは何を変更しても変更しても再起動する必要がなくてすぐに使えます.本当に悲しいです)