1 本机环境:

  • deepin 15.11
  • Qt 5.11.3
  • fcitx 输入法

2 问题描述

  Qt Creator 和使用 QT 编译的程序运行时均不能使用deepin系统自带的fcitx输入法,且采用传统方法(将 /usr/lib/x86_64-linux-gnu/qt5/plugins/platforminputcontexts/libfcitxplatforminputcontextplugin.so 复制到相应路径)无法解决。

3 解决方案

  1. 安装相应的依赖库:

    sudo apt-get install cmake fcitx-libs-dev libgl1-mesa-dev libglu1-mesa-dev libxkbcommon-dev
  2. 设置 Qt 环境变量:
    echo "export PATH=${HOME}/Qt5.10.0/5.10.0/gcc_64/bin:${PATH}" >> ~/.bashrc && source ~/.bashrc

    注意,将上述命令中的紫色字体部分替换为自己实际的 Qt 安装的相应路径(${HOME} 表示用户文件夹)。

  3. 下载 fcitx-qt5 源码:下载地址
  4. 解压并编译安装:
    cd file_path(为fcitx-qt5 解压后的文件夹路径)
    cmake . (报错 Could not find a package configuration file provided by "ECM" 则执行 sudo apt install extra-cmake-modules ,然后再次执行 cmake .)
    make
    sudo make install
  5. 将 fcitx-qt5/platforminputcontext/ 目录下的 libfcitxplatforminputcontextplugin.so 文件复制到Qt安装目录下的 platforminputcontexts 子目录中(安装时如果不改变路径,一般为:/home/用户文件夹/Qt5.11.3/5.11.3/gcc_64/plugins/platforminputcontexts),重新使用Qt编译的程序就能正常使用 fcitx 输入法;

  6. 将 libfcitxplatforminputcontextplugin.so 文件复制QtCreator 安装目录下的 platforminputcontexts 子目录中(安装时如果不改变路径,一般为:/home/用户文件夹/Qt5.11.3/Tools/QtCreator/lib/Qt/plugins/platforminputcontexts),重启QtCreator 就可以正常使用 fcitx 输入法,具体命令如下:

    cd /home/用户文件夹/Qt5.11.3/Tools/QtCreator/lib/Qt/plugins/platforminputcontexts/
    sudo cp /(自己的实际路径)/fcitx-qt5/platforminputcontext/libfcitxplatforminputcontextplugin.so .
    sudo chmod libfcitxplatforminputcontextplugin.so cd /home/用户文件夹/Qt5.11.3/5.11.3/gcc_64/plugins/platforminputcontexts
    sudo cp /(自己的实际路径)/fcitx-qt5/platforminputcontext/libfcitxplatforminputcontextplugin.so .
    sudo chmod libfcitxplatforminputcontextplugin.so

    注意,紫色部分均为可能需要更改的地方。

转载于:https://blog.csdn.net/davidhopper/article/details/78299196

Linux下关于Qt无法调用fcitx的中文输入的更多相关文章

  1. linux下的qt串口通信

    1.linux下的qt串口通信跟windows唯一的差别就是端口号的名字,windows下面是COM,而linux是ttyUSB0的路径 2.一般情况下linux插上USB转串口线就可以在/dev/目 ...

  2. linux下对qt编写的程序进行部署

    当我们完成程序设计之后,需要将可执行程序交付客户,而运行环境里面可能是没有相关支持库的,这个时候就涉及到部署的相关问题.对于我们在Linux下基于QT编写的图像处理程序,我们采用linuxdeploy ...

  3. [置顶] Linux下发布QT程序

    Linux下发布QT程序 概述 无论在windows下还是在linux下,可执行程序的运行都依赖于相关的运行库,我们需要将依赖的库找到放到特定的位置,让可执行文件能够找到.在不知道可执行文件依赖哪些库 ...

  4. Linux下编译Qt源码,一定要下载tar.gz版本,否则会报权限不足

    首先下载qt-everywhere-opensource-src-4.8.1源码,下载地址: ftp://ftp.qt-project.org/qt/source/ 在Linux下编译一定要下载qt- ...

  5. linux下安装QT过程

    说QT是linux下主要的图形开发工具一点都不过分,虽然诺基亚公司放弃Meego.遣散了Qt开发团队,但是它的各种商业.企业版本还是的到了很好的保护,linux下的开发工具集里还是经常看到它的身影,毕 ...

  6. LINUX下C语言编程调用函数、链接头文件以及库文件

    LINUX下C语言编程经常需要链接其他函数,而其他函数一般都放在另外.c文件中,或者打包放在一个库文件里面,我需要在main函数中调用这些函数,主要有如下几种方法: 1.当需要调用函数的个数比较少时, ...

  7. linux下执行QT可执行文件报错

    老样子,不多BiBi,直接进入主题! 有时候在linux下编译好QT程序,用QTCreator运行没问题,打包移植到另一台机器上,用命令./XX执行就会报错:error while loading s ...

  8. Linux下移植QT(2)---移植QT

    准备:ubantu12.04   内核 3.0.8(最好用同样的内核,3.2.0时没成功) 交叉编译工具:arm-cortex_a8-linux-gnueabi-gcc-4.4.6 QT版本5.4.2 ...

  9. Linux下C/C++代码调用PHP代码(转)

    Linux下C/C++代码可以通过popen系统函数调用PHP代码并通过fgets函数获取PHP代码echo输出的字符串. //main.c char str[1024] = {0}; char *  ...

随机推荐

  1. javascript中的作用域和变量提升

    js的运行主要分两个阶段:js的预解析和运行,预解析阶段所有的变量声明和函数定义都会提前,但是变量的赋值不会提前.

  2. C语言实现FTP服务器

    公共部分代码 /* common.h */ #ifndef COMMON_H #define COMMON_H #include <arpa/inet.h> #include <ct ...

  3. mysql(六)数据库连接池

    什么是数据库连接池 数据库连接池(Connection pooling)是程序启动时建立足够的数据库连接,并将这些连接组成一个连接池,由程序动态地对池中的连接进行申请,使用,释放 数据库连接池的运行机 ...

  4. cad.net IExtensionApplication接口的妙用 分开写"启动运行"函数

    cad提供的 IExtensionApplication 接口 是不能实现一次以上的,那么这给编写代码带来了一种不好的情况是,每次都要去修改实现这个接口的类, 如果是一个小的测试功能,你又要去动前面的 ...

  5. Excel 如何统计非空非零单元格的个数

    使用 Excel 统计非空非零单元格的个数: ——使用函数 :=COUNTIFS($B$2:$B$194440,"<>",$B$2:$B$194440,"&l ...

  6. Docker 一步搞定 ZooKeeper 集群的搭建

    Docker 一步搞定 ZooKeeper 集群的搭建 背景 原来学习 ZK 时, 我是在本地搭建的伪集群, 虽然说使用起来没有什么问题, 但是总感觉部署起来有点麻烦. 刚好我发现了 ZK 已经有了 ...

  7. CAS自旋volatile变量

    public final int getAndIncrement() { for (;;) { int current = get(); // 取得AtomicInteger里存储的数值 int ne ...

  8. 「雅礼集训 2017 Day1」字符串 SAM、根号分治

    LOJ 注意到\(qk \leq 10^5\),我们很不自然地考虑根号分治: 当\(k > \sqrt{10^5}\),此时\(q\)比较小,与\(qm\)相关的算法比较适合.对串\(s\)建S ...

  9. 常用Java API之Ramdom--用代码模拟猜数小游戏

    常用Java API之Ramdom Ramdom类用来生成随机数字.使用起来也是三个步骤: 1.导包 import java.util.Random; 2.创建 Random r = new Rand ...

  10. ML学习笔记之TF-IDF原理及使用

    0x00 什么是TF-IDF TF-IDF(Term Frequency-Inverse Document Frequency, 词频-逆文件频率). # 是一种用于资讯检索与资讯探勘的常用加权技术. ...