首页 > 解决方案 > 从源代码构建 Qt 使其接受中文输入

问题描述

我在 Debian buster 上从源代码构建 Qt,但现在我无法在 QLineEdit 上输入中文。中文输入适用于所有其他应用程序,除了我使用从源代码构建的 Qt 构建的应用程序。如果我使用来自 apt get 的 Qt 构建我的应用程序,那么中文输入就可以正常工作。

我用以下命令编译:

../qt-everywhere-src-5.12.8/configure -prefix $PWD/qtbase -static -opensource -qt-xcb -confirm-license -skip qtwebengine -feature-freetype -fontconfig -no-icu -nomake tests -nomake examples

我用一个简单的项目检查中文输入,比如:

QMainWindow w;
QLineEdit lineEdit;
w.setCentralWidget(&lineEdit);
w.show();

关于我应该寻找什么的任何建议?

标签: c++linuxqtdebianchinese-locale

解决方案


看起来我的 qt 应用程序在启动时加载了一堆插件。其中一个插件与 OS IME 对话,即 fcitx 或 ibus 等...

我发现我正在使用 fcitx 并且 apt get 提供了 qt 的插件 - 这就是中文输入起作用的原因。另一方面,我从源代码构建的 qt 没有 fcitx 插件,但有 ibus 插件。

所以我删除了 fcitx 并安装了 ibus,现在我可以使用 qt build from source 在我的 qt 应用程序构建中输入中文。

但是,我仍然不知道为什么 apt get 提供了 qt 有 fcitx 插件而我的 qt build 没有。


推荐阅读