c++ - 从源代码构建 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();
关于我应该寻找什么的任何建议?
解决方案
看起来我的 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 没有。
推荐阅读
- kentico - 在 Kentico 中找不到功能“SimpleContactManagement”的许可证
- spring - InteliJ - 新导入的 maven 项目出现“无法解决”错误
- python - python 的 psycopg2 包和 dbeaver 客户端在执行相同的查询时返回不同的结果。这是 psycopg2 的已知问题吗?
- spring - 为生产中的旧数据库记录填充新创建的列?
- command-line - 如何使用 mosquitto 命令行工具同时订阅和发布?
- c# - C# Thread.Join 是否保证内存一致性?
- python - 数据操作 - 移动行操作
- c# - 为什么在 .NET Core 中会加密会话 cookie?
- r - 为什么我不能使用爆发程序包?
- qt - 如果还没有另一个具有 ObjectPicker 的实体,则 ObjectPicker 不适用于动态创建的实体