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

embedded/2025/2/22 21:51:58/

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.ppmy.cn/embedded/163671.html

相关文章

数据库提权总结

Mysql提权 UDF提权是利用MYSQL的自定义函数功能,将MYSQL账号转化为系统system权限 前提: 1.UDF提权条件 (1)Mysql版本大于5.1版本udf.dll文件必须放置于MYSQL安装目录下的lib\plugin文件夹下。 (2)Mysql…

Excel如何给单元格填色,以及如何用Python 3实现单元格填色

诸神缄默不语-个人CSDN博文目录 文章目录 1. 在Excel中实现单元格填色1. 开始 - 字体2. 在单元格中右键选择填充颜色 2. 在Python 3中实现单元格填色 1. 在Excel中实现单元格填色 1. 开始 - 字体 2. 在单元格中右键选择填充颜色 2. 在Python 3中实现单元格填色 使用openpyxl.…

切换镜像源(npm)

常见的npm镜像源 官方源 URL: https://registry.npmjs.org 淘宝镜像源(npmmirror) URL: https://registry.npmmirror.com 其他常用镜像源 URL: https://registry.cnpmjs.org (CNPM) 这里是引用 切换npm镜像源 切换到官方源 npm config set registry http…

传输层协议UDP,TCP

前面我们学习了应用层的协议,接下来我们进入下层传输层协议的学习; 1.UDP协议 udp协议是用户数据报协议,这样的协议的优点是简单,但这样的协议不会进行传输控制,对于传输的可靠性没有提供保证;我们前面使…

【kafka系列】消费者

目录 获取消息 1. 消费者获取消息的流程逻辑分析 阶段一:消费者初始化 阶段二:分区分配与重平衡(Rebalance) 阶段三:消息拉取与处理 阶段四:偏移量提交 核心设计思想 2. 流程 关键点总结 常见参数…

国产FPGA开发板选择

FPGA开发板是学习和开发FPGA的重要工具,选择合适的开发板对学习效果和开发效率至关重要。随着国产FPGA的发展,淘宝上的许多FPGA开发板店铺也开始进行国产FPGA的设计和销售,本文将对国产FPGA和相关店铺做个简单梳理,帮助有需要使用…

WebMvcConfigurer 介绍

WebMvcConfigurer 介绍 1. 什么是WebMvcConfigurer 介绍2. WebMvcConfigurer接口常用的方法3. 使用WebMvcConfigurer实现跨域4. 使用WebMvcConfigurer配置拦截器5. 使用WebMvcConfigurer配置静态资源5.1 配置外部目录(本地文件系统)详细解释 6. 使用 Web…

新型基于Go语言的恶意软件利用Telegram作为C2通信渠道

研究人员发现了一种新型后门恶意软件,使用Go语言编写,并利用Telegram作为其命令与控制(C2)通信渠道。尽管该恶意软件似乎仍处于开发阶段,但它已经具备完整的功能,能够执行多种恶意活动。这种创新的C2通信方…