当前位置: 首页 > article >正文

QT6开发高性能企业视频会议-7 Linux中文输入法的支持

Linux桌面环境输入法框架介绍

在Linux桌面环境中,使用各种语言(包括中文)的输入法需要输入法框架的支持,下面介绍两个主流的输入法框架ibus和fcitx。

ibus(Intelligent Input Bus)
  • 简介: ibus 是一个为多语言输入设计的输入法框架。它最初由 Google 开发,旨在提供一个跨平台的输入法框架,支持多种语言和输入法引擎。ibus 采用 client-server 架构,ibus-daemon 作为服务器运行,输入法引擎作为客户端连接到服务器。

  • 特点:

    • 跨平台: ibus 的设计目标是跨平台,虽然主要在 Linux 上使用,但也支持其他操作系统。
    • 多语言支持: ibus 支持多种语言的输入,包括中文、日文、韩文等。
    • 插件式架构: ibus 使用插件式架构,允许用户安装和使用不同的输入法引擎。
    • 与 GNOME 集成: ibus 与 GNOME 桌面环境集成度很高,配置界面通常集成在 GNOME 的系统设置中。
    • Client-Server 架构: ibus 使用 client-server 架构,ibus-daemon 作为服务器运行,输入法引擎作为客户端连接到服务器。
  • 优点:

    • 与 GNOME 桌面环境集成度高。
    • 支持多种语言和输入法引擎。
    • 跨平台设计。
  • 缺点:

    • 依赖于 GNOME 桌面环境。
    • Client-Server 架构可能增加一些系统开销。
fcitx (Free Chinese Input Tool eXtension  or Flexible Context-aware Input Tool with eXtension)
  • 简介: fcitx 是一个主要为中文输入设计的输入法框架。它最初由Yuking开发,旨在提供一个灵活、高效的中文输入解决方案。fcitx 采用模块化架构,输入法引擎作为插件加载到 fcitx 框架中。

  • 特点:

    • 轻量级: fcitx 相对轻量级,资源占用较少,适合在各种桌面环境中使用。
    • 模块化架构: fcitx 采用模块化架构,输入法引擎作为插件加载到 fcitx 框架中。
    • 独立性: fcitx 相对独立,对桌面环境的依赖较小,可以在多种桌面环境中使用,例如 KDE, XFCE, LXDE 等。
    • 配置灵活: fcitx 有独立的配置工具,例如 fcitx-configtool,允许用户自定义各种选项。
  • 优点:

    • 轻量级,资源占用少。
    • 模块化架构,易于扩展。
    • 独立性强,可在多种桌面环境中使用。
  • 缺点:

    • 对 GNOME 桌面环境的集成度不如ibus。

不同的输入法可能支持不同的输入法框架. 搜狗输入法和百度输入法在Linux系统中是基于fcitx输入法框架的‌, 因此在安装和使用搜狗或者百度输入法时,需要确保系统安装和使用的是fcitx框架. 

QT6 已经默认支持ibus输入法框架, 但是默认不支持fcitx输入法框架. 

目前使用较多的中文桌面系统为统信或者麒麟Linux,默认安装和使用fcitx作为输入法框架。 QT6开发的app要支持fcitx输入法,需要手动编译一份新版本fcitx4 or fcitx5 Qt6插件直接打包进App,以下为编译fcitx的步骤。

1. 安装编译依赖(以ubuntu为例,根据需要):

sudo apt update
sudo apt install build-essential cmake gettext intltool libx11-dev libxft-dev libxext-dev libxrender-dev libgtk2.0-dev libgtk-3-dev libdbus-1-dev libdbus-glib-1-dev libglib2.0-dev libgsettings-glib-1.0-dev libpcre3-dev libtool automake autoconf

2. 下载 Fcitx 源代码:

https://github.com/fcitx/fcitx5-qt.git

或者从fcitx的Git页面下载源代码包:

GitHub - fcitx/fcitx5-qt: Qt library and IM module for fcitx5

3. 编译和安装 Fcitx:

cd fcitx
mkdir build
cd build
cmake ..
make
sudo make install

fcitx的CMakeList默认enable qt5和qt6, 编译好的 libfcitxplatforminputcontextplugin-qt6.so 动态库在 /build/qt6/platforminputcontext/目录下, 

将生成的libfcitxplatforminputcontextplugin-qt6.so 拷贝到qt6/plugins/platforminputcontexts/

这样Qt6开发的Linux app,就可以支持基于fcitx框架的中文输入法,比如搜狗输入法或者百度输入法.  

神旗视讯开源地址: 

国内: https://gitee.com/sqmeeting

神旗视讯 -- 免费高性能的私有化音视频系统


http://www.kler.cn/a/551613.html

相关文章:

  • openEuler-24.03-LTS/virtual_machine_img 版本的安装
  • STM32完全学习——RT-thread标准版移植
  • Ubuntu学习备忘
  • Mybatis高级(动态SQL)
  • Stream流简单使用
  • 【JavaScript】《JavaScript高级程序设计 (第4版) 》笔记-Chapter16-DOM2 和 DOM3
  • 人工智能(AI)在癌症休眠研究及精准肿瘤学中的应用|顶刊速递·25-02-18
  • 本地DeepSeek模型GGUF文件转换为PyTorch格式
  • 动态规划算法篇:枚举的艺术
  • 嵌入式八股文(四)计算机网络篇
  • uniapp编写微信小程序:project.config.json: libVersion 字段需为 string, string
  • java项目打包成docker镜像步骤
  • LeetCode 热题 100_分割回文串(61_131_中等_C++)(递归(回溯))(回溯问题使用类成员变量还是函数传参)
  • 人工智能基础之数学基础:01高等数学基础
  • 小米电视维修记录 2025/2/18
  • Spark ,虚拟机基本命令(1)
  • 【Modelsim】warning:(vsim-WLF-5000) WLF file currently in use:vsim.wlf
  • R语言用逻辑回归贝叶斯层次对本垒打数据与心脏移植数据后验预测检验模拟推断及先验影响分析|附数据代码...
  • Mysql-事务日志undo log
  • React实现自动滚动表格