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
  • この時ECMに関するエラーが見つかります:
  • 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"
  • 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")

    解決策は、次のパッケージをインストールすることです.
    $ 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.soQt5.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台のデスクトップは何を変更しても変更しても再起動する必要がなくてすぐに使えます.本当に悲しいです)