解决Ubuntu中Qt5 Creator不能使用搜狗输入法输入汉字问题

本文提供了一套详细的指南,介绍如何在Ubuntu 17.04上使用QtCreator 5.4.1编译fcitx-qt输入法。包括安装必要的依赖库、设置环境变量、下载源码、编译安装步骤及解决编译过程中可能遇到的如缺少ECM、Qt5包配置文件等常见问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我用的是Ubuntu17.04 32bit 和Qt Creator5.4.1 32bit

1、编译fcitx-qt需要cmake

sudo apt-get install cmake
sudo apt-get install libgl1-mesa-dev libglu1-mesa-dev

2、安装 fcitx-libs-dev

sudo apt-get install fcitx-libs-dev

3、设置qmake的环境变量(路径根据自己安装位置修改)

export PATH="/usr/local/QtCreator5.4.1/5.4/gcc/bin":$PATH

4、下载fcitx-libs源码(apt-get source fcitx-libs-qt5 这种方法下载不到)

git clone git://anonscm.debian.org/pkg-ime/fcitx-qt5.git

5、编译方法

cd fcitx-qt5
cmake .
make
sudo make install

最后把编译得到 libfcitxplatforminputcontextplugin.so 拷贝到
Qt安装目录/Tools/QtCreator/bin/plugins/platforminputcontexts
和 qt安装目录/5.4/gcc/plugins/platforminputcontexts

cd /usr/local/QtCreator-5.4.1/Tools/QtCreator/bin/plugins/platforminputcontexts

sudo cp ~/fcitx-qt5/platforminputcontext/libfcitxplatforminputcontextplugin.so .

cd /usr/local/QtCreator-5.4.1/5.4/gcc_64/plugins/platforminputcontexts

sudo cp ~/fcitx-qt5/platforminputcontext/libfcitxplatforminputcontextplugin.so .

编译fcitx-libs-dev中所遇到的问题
缺少 “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!

解决方法
可以使用apt-get安装

sudo apt-get install extra-cmake-modules

也可以下载软件包自己安装

wget https://launchpadlibrarian.net/189487929/extra-cmake-modules_1.4.0.orig.tar.xz
tar -xJf extra-cmake-modules_1.4.0.orig.tar.xz

cd extra-cmake-modules-1.4.0
cmake .
make
sudo make install

找不到Qt5包配置文件的错误
报错信息:

CMake Error at CMakeLists.txt:29 (find_package):
  Could not find a package configuration file provided by "Qt5" (requested
  version 5.1.0) with any of the following names:

    Qt5Config.cmake
    qt5-config.cmake

  Add the installation prefix of "Qt5" to CMAKE_PREFIX_PATH or set "Qt5_DIR"
  to a directory containing one of the above files.  If "Qt5" provides a
  separate development package or SDK, be sure it has been installed.


-- Configuring incomplete, errors occurred!
See also "/home/o/fcitx/fcitx-qt5/build/CMakeFiles/CMakeOutput.log".

解决方法(根据自己安装的位置修改)

cmake -DQt5_DIR=/usr/local/QtCreator5.4.1/5.4/gcc/lib/cmake/Qt5 ..

找不到libxkbcommon

报错信息:

-- Could NOT find XKBCommon_XKBCommon (missing:  XKBCommon_XKBCommon_LIBRARY XKBCommon_XKBCommon_INCLUDE_DIR) 
CMake Error at /usr/share/cmake-3.5/Modules/FindPackageHandleStandardArgs.cmake:148 (message):
  Could NOT find XKBCommon (missing: XKBCommon_LIBRARIES XKBCommon) (Required
  is at least version "0.5.0")
Call Stack (most recent call first):
  /usr/share/cmake-3.5/Modules/FindPackageHandleStandardArgs.cmake:388 (_FPHSA_FAILURE_MESSAGE)
  cmake/FindXKBCommon.cmake:30 (find_package_handle_standard_args)
  CMakeLists.txt:31 (find_package)


-- Configuring incomplete, errors occurred!
See also "/home/eagle/fcitx-qt5/CMakeFiles/CMakeOutput.log".

解决方法(x86_64-linux-gnu 根据自己的版本修改)

Ubuntu 16.04中可以执行 sudo apt install libxkbcommon-dev 安装

wget http://xkbcommon.org/download/libxkbcommon-0.5.0.tar.xz
tar xf libxkbcommon-0.5.0.tar.xz
./configure —prefix=/usr —libdir=/usr/lib/x86_64-linux-gnu —disable-x11
make
sudo make install

找不到 yacc

报错信息:

YACC     src/xkbcomp/parser.c
./build-aux/ylwrap: line 176: yacc: command not found
make: *** [src/xkbcomp/parser.c] Error 127

解决方法

sudo apt-get install bison
<think>嗯,用户遇到了在Ubuntu 24.10的Qt Creator中无法使用搜狗输入法输入中文的问题。这个问题很典型,通常与环境变量配置或Qt平台插件有关。用户已经安装了搜狗输入法,说明基础环境是OK的,问题可能出在Qt Creator的运行时环境上。 用户可能是个开发者,正在用Qt Creator写代码,突然发现无法输入中文会很着急。考虑到Qt开发涉及C++和界面设计,中文输入可能是为了写注释或本地化文本。用户应该已经尝试过常规方法无效,才会来寻求帮助。 从技术角度看,这个问题有几个关键点:一是搜狗输入法需要正确的环境变量支持,特别是XMODIFIERS和QT_IM_MODULE;二是Qt程序需要加载fcitx前端;三是Qt Creator本身可能需要重新启动才能生效。用户可能忽略了环境变量的全局设置或启动器配置。 我注意到引用中提到了libfcitxplatforminputcontextplugin的安装,这正是关键所在。Ubuntu 24.10作为较新版本,其Qt环境可能需要显式配置输入法插件路径。用户可能没意识到Qt Creator需要单独设置环境变量,而不仅是系统级设置。 解决方案需要分三层:先确认系统输入法框架运行正常,再专门为Qt Creator配置环境变量,最后处理插件路径。其中设置QT_IM_MODULE=fcitx和QT_PLUGIN_PATH最为关键。如果用户遇到权限问题,可能需要sudo操作,但我会提醒谨慎使用。 测试步骤设计得很具体:创建Qt Widgets项目是必要的,因为控制台项目可能不触发输入法。用户如果跳过测试步骤,可能会遗漏某些配置环节。最后的环境变量持久化也很重要,否则每次重启都要重新设置。 考虑到用户可能不熟悉终端操作,我把命令都写得非常完整,避免路径错误。对于.conf文件的编辑也给出了具体位置,因为Ubuntu 24.10使用Wayland后配置文件路径可能有变化。如果用户按步骤操作应该能解决,不行的话可能需要检查ibus是否冲突——不过既然装了搜狗,应该已经移除ibus了。</think>针对Ubuntu 24.10中Qt Creator无法输入中文的问题,请按以下步骤操作: --- ### **解决方法** #### **1. 安装必要的依赖库** ```bash sudo apt update sudo apt install fcitx-frontend-qt5 libfcitx-qt5-dev libfcitx-qt5-1 ``` #### **2. 链接输入法插件** ```bash # 查找Qt插件路径(通常为 /usr/lib/x86_64-linux-gnu/qt5/plugins) find /usr -name "libfcitxplatforminputcontextplugin.so" 2>/dev/null # 创建符号链接到Qt Creator插件目录 sudo ln -s /usr/lib/x86_64-linux-gnu/qt5/plugins/platforminputcontexts/libfcitxplatforminputcontextplugin.so /opt/Qt/Tools/QtCreator/lib/Qt/plugins/platforminputcontexts/ ``` > 若路径不同,请替换为实际路径 #### **3. 配置环境变量** 编辑Qt启动脚本: ```bash sudo nano /usr/share/applications/org.qt-project.qtcreator.desktop ``` 在`Exec=`行首添加环境变量: ```ini Exec=env QT_IM_MODULE=fcitx XMODIFIERS=@im=fcitx GTK_IM_MODULE=fcitx /opt/Qt/Tools/QtCreator/bin/qtcreator ``` #### **4. 重启输入法服务** ```bash fcitx -r ``` #### **5. 验证配置** ```bash # 检查环境变量 echo $QT_IM_MODULE # 应输出 fcitx echo $XMODIFIERS # 应输出 @im=fcitx # 检查插件加载 ldd /opt/Qt/Tools/QtCreator/lib/Qt/plugins/platforminputcontexts/libfcitxplatforminputcontextplugin.so | grep "not found" ``` > 无输出表示依赖完整 --- ### **测试步骤** 1. 重启系统 2. 启动Qt Creator新建Qt Widgets项目 3. 在文本框中按`Ctrl+Space`切换搜狗输入法 --- ### **故障排查** - **若仍无效**:在终端显式启动Qt Creator观察日志 ```bash env QT_DEBUG_PLUGINS=1 QT_IM_MODULE=fcitx qtcreator ``` 检查日志中是否出现: ```log QFCitxPlatformInputContext::update: current IM: sogou-qimpanel ``` - **Wayland兼容问题**: ```bash sudo nano /etc/gdm3/custom.conf ``` 取消注释并修改为: ```ini WaylandEnable=false ``` --- ### **环境变量持久化** 编辑`~/.profile`: ```bash export QT_IM_MODULE=fcitx export XMODIFIERS=@im=fcitx export GTK_IM_MODULE=fcitx ``` --- **原理说明**:Qt程序需通过`libfcitxplatforminputcontextplugin.so`插件桥接Fcitx框架,环境变量确保Qt/KDE/Gnome三大图形栈统一调用搜狗输入法[^1][^3]。Ubuntu 24.10的Wayland默认配置可能导致兼容性问题,切换X11可规避[^2]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值