I am currently developing a simple Qt application with Python for myself to learn foreign languages. When I wanted to add support for Japanese, I recognized that while I have no problems with Anki and other Qt applications, Japanese input did not work in my own application.
I normally use fcitx5, but then switched to fcitx, because I first
suspected Qt6 being the problem and there’s a dedicated package
still did not work. Next, I tried several different libraries thinking that
maybe it’s a problem with the Python library. PySide6 (Qt6), PySide2 (Qt5) and
PyQt5 (Qt5), none of them worked.
When you know the solution, it’s really simple though: The Python libraries
(at least when installed from PyPI) do not ship with the
required plugin for fcitx.
On my system Qt, there is the file
but listing the virtualenv folder gives:
$ ls -l venv/lib/python3.10/site-packages/PySide6/Qt/plugins/platforminputcontexts/ total 208 -rwxr-xr-x 1 brati users 27712 Mar 19 11:42 libcomposeplatforminputcontextplugin.so -rwxr-xr-x 1 brati users 162240 Mar 19 11:42 libibusplatforminputcontextplugin.so -rwxr-xr-x 1 brati users 19080 Mar 19 11:42 libqtvirtualkeyboardplugin.so
Copying the file from the system Qt6 into the virtualenv Qt6 solved the issue!
cp /usr/lib/qt6/plugins/platforminputcontexts/libfcitxplatforminputcontextplugin-qt6.so \ venv/lib/python3.10/site-packages/PySide6/Qt/plugins/platforminputcontexts/