fcitx-qt5をインストールし,QtとQtCreatorで日本語入力

Ubuntu 16.04でQt 5.10.0とQtCreator 4.5.0でアプリケーションを開発をしている。

OSのパッケージマネージャーAPTでインストールできるものはバージョンが古いので,公式サイトのインストーラーからダウンロードしたものを使っている。

最新のバージョンのQtが使えて満足していたのだが,インストーラーからインストールした場合,QtCreatorで日本語が入力できず,このQtCreatorで作成したアプリケーションでも日本語を入力できないという問題があった。UbuntuでのIMEにはfcitxとmozcの組み合わせを使っており,日本語に入力を切り替えようとしても,切り替えられなかった。

今後の開発に大きな影響が出るためこの問題の対応方法を調べ,無事に解決できたのでその手順を記す。

この問題の対処方法は以下のページを参考にした。

どうやら,インストーラーからインストールした場合,plugins/platforminputcontexts/にlibfcitxplatforminputcontextplugin.soが欠如しているため,IMEの切り替えが機能しないらしい。

そこで,自分でlibfcitxplatforminputcontextplugin.soをビルドして,配置してやることで対応する。

インストール情報
項目 説明
配布元 fcitx/fcitx-qt5: Fcitx support for Qt5
依存関係 ECM, Fcitx
ビルド環境 Ubuntu 16.04
インストール手順
LOCAL=~/.local
PKG=fcitx-qt5

cd $LOCAL/src
git clone --depth 100 https://github.com/fcitx/$PKG cd $PKG VER=$(git tag | sed 's/^v//' | tail -n 1)
mkdir build; cd build
cmake .. -DCMAKE_INSTALL_PREFIX=$LOCAL/stow/$PKG-$VER -DCMAKE_PREFIX_PATH=$LOCAL/opt/Qt/Qt5.10.0/5.10.0/gcc_64
make && make install stow -d $LOCAL/stow $PKG-$VER

インストール手順で重要なのが,9行目だ。ここで,現在使用しているQtを参照(今回は$LOCAL/opt/Qt/Qt5.10.0/にインストール済みと想定)している。ここで参照しないとmakeでエラーが出てしまう。

ビルドが完了したら,以下のコマンドで生成されたlibfcitxplatforminputcontextplugin.soをコピーして,QtCreatorの場所に配置してやればいい。

cp platforminputcontext/libfcitxplatforminputcontextplugin.so ~/.local/opt/Qt/Qt5.10.0/Tools/QtCreator/lib/Qt/plugins/platforminputcontexts/

なお,以下のコマンドでplatforminputcontextsディレクトリーがどこにあるかを確認すると,以下の3箇所に存在していた。

cd ~/.local/opt/Qt/
find -name "platforminputcontexts"
./Qt5.10.0/5.10.0/gcc_64/plugins/platforminputcontexts
./Qt5.10.0/5.10.0/Src/qtbase/src/plugins/platforminputcontexts
./Qt5.10.0/Tools/QtCreator/lib/Qt/plugins/platforminputcontexts

この内,gcc_64にはもともとlibfcitxplatforminputcontextplugin.soが存在しており,このライブラリーはQtCreatorにだけ不足していた。

不思議に思って,gcc_64配下に存在するlibfcitxplatforminputcontextplugin.soをQtCreatorのplatforminputcontextsにそのままコピーすれば,問題なく日本語が入力できた

一生懸命自分でビルドしていたが,そもそもそんなことしなくてもよかったようだ。配布元がQtCreatorのディレクトリーに格納するのを忘れているのかもしれない。

ひとまず解決できたのでよかった。

fcitx-qt5をインストールし,QtとQtCreatorで日本語入力” に対して1件のコメントがあります。

  1. psan より:

    Please help

    cmake is giving me below error

    fcitx-qt5/platforminputcontext/qtkey.cpp:25:28: fatal error: X11/XF86keysym.h: No such file or directory

    How to resolve. any help is appreciated.

    1. senooken より:

      Hi psan. Thanks for comment.

      I think you will need to X11 related library.

      I will try to investigate this error in this weekend. Could you give me some information?

      For example, OS (uname -a), compiler version (gcc --version).

      1. psan より:

        Hi
        Thank you for quick reply.
        OS is UBUNTU 16.4 LTS (uname -a : 4.4.0.31 generic #50-Ubuntu x86_64)

        I resolved above error by installing below libs
        sudo apt-get install libxkbcommon-dev
        sudo apt-get install xorg

        Now I am able to build fcitx-qt5 and copied it to required folders.

        If I open Qtcreator in normal mode I am able to input Japanese characters.
        But If I open QTCreator in sudo mode I am still not able to input Japanese characters.
        sudo モードでQTCreatorを開くと日本語入力出来ない事。sudoモード以外わ出来ます。

        I am in big trouble 🙂

        1. senooken より:

          I am glad to success compiling fcitx-qt5!

          This article describe how to install fcitx-qt5 in local user. If you want to install global user (admin, super user, sudo), please change or remove -DCMAKE_INSTALL_PREFIX.

          # cmake .. -DCMAKE_INSTALL_PREFIX=$LOCAL/stow/$PKG-$VER -DCMAKE_PREFIX_PATH=$LOCAL/opt/Qt/Qt5.10.0/5.10.0/gcc_64
          cmake  -DCMAKE_PREFIX_PATH=$LOCAL/opt/Qt/Qt5.10.0/5.10.0/gcc_64 ..

          Also if you want to install fcitx-qt5 in local user and run as sudo, you need to inherit user environmental variable (LD_LIBRARY_PATH) by following command.

          sudo -E LD_LIBRARY_PATH="$LD_LIBRARY_PATH" qtcreator

          Or you need to customize /etc/sudoers (refer to man sudoers for details).

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です