解决Qt程序在Linux下无法输入中文的办法(与下文连接)
在安装QT集成开发工具包之前需要先安装build-essential和libncurses5-dev这两个开发工具和库,libncurses5-dev库是一个在Linux/Unix下广泛应用的图形函数库,build-essential里面包括一些Linux下开发的必要工具。在ubuntu中我们使用QT进行开发也用到了这两个工具库。安装命令为:sudo apt-get install build-essential libncurses5-dev。
在这个库安装完成后就可以安装QT开发工具包了,具体安装步骤如下:
1、下载QT SDK安装包。
2、在安装包所在路径执行命令:
sudo chmod u+x qt-sdk-linux-x86-opensource-2010.04
sudo ./ qt-sdk-linux-x86-opensource-2010.04
3、安装完成后编译一个自带的例子,看是否能够正常编译运行,如果能够运行则证明已经安装成功。
这篇文章引用了较多其他作者的内容,也忘记引用的出处了,只能感谢了。以下转入正题。本文转自博客,十分感谢
对于qt5.5,要下载libqt库源码自己编译,参考解决Qt5 Creator无法切换输入法(fcitx),Ubuntu中不能使用搜狗输入法录入汉字问题
Linux下有两种输入法,分别是ibus和fcitx,如果喜欢搜狗输入法的话,需要安装fcitx.
首先说第一种输入法ibus.
一、ibus
安装步骤如下:
第一:安装IBus框架,
sudo apt-get install ibus ibus-clutter ibus-gtk ibus-gtk3 ibus-qt4
启动IBus框架,在终端输入:
im-switch -s ibus
安装完IBus框架后注销系统,保证更改立即生效。
注意,这里可能会出错,提示如下:no configuration file “ibus” exists.解决办法是修改im-switch的配置文件,步骤如下:
$ cd /etc/X11/xinit/xinput.d/ $ sudo cp default ibus $ sudo vim ibus
在Vim中编辑配置项:
XIM=ibus XIM_PROGRAM=/usr/bin/ibus-daemon XIM_ARGS="—xim"
创建好配置文件之后再重新启动im-switch,就可以发现这回能够选择到ibus,而括号里面的就是我们的配置文件名,通过配置文件将设置指向了ibus的守护进程ibus-daemon,这样每次X在启动的时候就能自动关联该输入法,如下:
第三步:安装拼音引擎
有下面几种常用选择:
IBus拼音:sudo apt-get install ibus-pinyin
IBUS五笔:sudo apt-get install ibus-table-wubi
谷歌拼音输入法:sudo apt-get install ibus-googlepinyin
Sun拼音输入法:sudo apt-get install ibus-sunpinyin
第四步:设置IBus框架
ibus-setup
设置IBUS
第五步:环境变量设置
通常情况下,IBus图标(一个小键盘)会出现在桌面右上角的任务栏中。有时候这个图标会自行消失,可使用以下命令,找回消失的IBus图标:
ibus-daemon -drx
要启用输入法,还需要配置环境变量,具体如下(IBus支持 XIM 协议及 Gtk IM 模块以及 Qt IM 模块):
export GTK_IM_MODULE=ibus
export QT_IM_MODULE=ibus
export XMODIFIERS=@im=ibus
要启用输入法对qt的支持,步骤如下:
/usr/lib/x86_64-linux-gnu/qt5/plugins/platforminputcontexts/libibusplatforminputcontextplugin.so
将该文件复制到
qt安装目录/Tools/QtCreator/bin/plugins/platforminputcontexts(作用是使得qtcreator开发环境支持输入法)
和
qt安装目录/5.3/gcc_64/plugins/platforminputcontexts(个人猜测是使得用编译器编译出来的qt程序也支持输入法)
中
如果qt开发出来的程序不支持输入法,那么可以在程序所在的目录创建platforminputcontexts目录,然后把libibusplatforminputcontextplugin.so拷贝进去,发布的时候与可执行程序一起发布,如果还是不行,重启电脑,在重新运行可执行程序。
开机启动Ibus
System >> Preferences >> Startup Applications
Click the button: Add
Name: ibus daemon
Command: /usr/bin/ibus-daemon -d
Comment: start ibus daemon when gnome start
System >> Preferences >> Startup Applications
Click the button: Add
Name: ibus daemon-open
Command: /usr/bin/ibus-daemon -drx
Comment: start ibus daemon when gnome starting
常用命令:
im-switch -s ibus #启动ibus框架
ibus-setup #设置ibus框架
ibus-daemon -drx #通常情况下,IBus图标(一个小键盘)会出现在桌面右上角的任务栏中。有时候这个图标会自行消失,可使用以下命令,找回消失的IBus图标
im-switch #设置系统输入法
$ sudo killall ibus-daemon #重启ibus
$ sudo ibus-daemon -d –xim
二、fcitx输入法:
1、安装fcitx for Qt5动态库,从而得到需要的依赖库
执行如下命令:sudo apt-get install fcitx-libs-qt5
安装fcitx输入法前端:sudo apt-get install fcitx-frontend-qt5
2、配置Fcitx环境变量:
export XMODIFIERS=@im=fcitx
export XIM=fcitx
export XIM_PROGRAM=fcitx
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
3.1让qtcreator开发环境支持搜狗输入法:
进入Qt安装目录的下面路径:{path}是Qt的安装目录cd{path}(可用命令dpkg -L 包名看文件安装路径)
/Qt5.3.1/Tools/QtCreator/bin/plugins/platforminputcontexts
拷贝fcitx输入法支持文件:执行如下命令 将支持文件copy 到上文的目录sudo cp /usr/lib/x86_64-linux-gnu/qt5/plugins/platforminputcontexts/libfcitxplatforminputcontextplugin.so . (对于32位系统,对应的目录为/usr/lib/i386-linux-gnu/qt5/plugins/platforminputcontexts/
)
为刚才的文件添加可执行命令: chmod+x libfcitxplatforminputcontextplugin.so 重启Qt就可以使用搜狗输入法了!!如果还是不行,重启电脑,再重新打开qtCreator就可以了。 但是 原来的ctrl+空格是代码提示快捷键,现在用于切换输入法。这也好解决:
Qt creator--->工具--->选项--->环境--->键盘。然后找到Complete This修改之即可
3.2让qt5开发出来的程序也支持搜狗输入法:
发布程序时同时把拷贝到程序所在目录,需要在工程目录创建platforminputcontexts目录,然后把/usr/lib/x86_64-linux-gnu/qt5/plugins/platforminputcontexts/libfcitxplatforminputcontextplugin.so拷贝到platforminputcontexts目录,与程序一起发布,就可以让qt开发出来的程序在其他机器也能支持fcitx输入法了,如果还是不行,重启电脑,重新运行可执行程序。
常用命令:
Im-switch -s fcitx切换当前输入法为fcitx
im-switch -s fcitx -z default #将fcitx设为默认输入法
总结
qt安装目录下/5.3/gcc_64/plugins这个目录是用qt creator编译出的程序运行时调用插件的目录,所以这个输入法插件要放到这。好像自己在编译出的程序下新建
plugins/platforminputcontexts/目录,再将libfcitxplatforminputcontextplugin.so放进去也是可以的。
qt安装目录下/Tools/QtCreator/bin/plugins/这个目录是qt creator自己调用插件的目录,所以要想在qt creator中输入中文这里也要放一个。
测试结果:
测试环境: Linux gdlctech-System-Product-Name 3.13.0-24-generic #46-Ubuntu SMP Thu Apr 10 19:11:08 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
测试程序(以下程序同时运行时均可以正常使用输入法,不冲突):
qt4.8.5(用自己系统安装的
qtcreator以及其开发出来的程序)
qt5.3.1(32位的qtCreator可执行程序以及用它开发出来的程序)
Qt4.7.4(金山wps)
QQ程序(应该是qt4的某个版本)
注意事项:当ibus和fcitx输入法同时运行时,切换输入法会有冲突!!所以,不要把两种输入法同时运行!!
http://blog.csdn.net/u013281495/article/details/50560817
安装完系统之后发现,虽然安装了ibus,可是QT的程序都不能输入,心中纳闷,也很郁闷。-我安装的是KDE。


尝试 输入中文,仍然失败。


解决Qt程序在Linux下无法输入中文的办法(与下文连接)的更多相关文章
- 解决Qt程序在Linux下无法输入中文的办法
解决Qt程序在Linux下无法输入中文的办法 一位网友问我怎样在Linux的Qt的应用程序中输入中文,我一開始认为不是什么问题,可是后面自己尝试了一下还真不行.不仅是Qt制作的应用程序,就连Qt Cr ...
- 【Qt开发】解决Qt程序在Linux下无法输入中文的办法
解决Qt程序在Linux下无法输入中文的办法 一位网友问我如何在Linux的Qt的应用程序中输入中文,我一开始觉得不是什么问题,但是后面自己尝试了一下还真不行.不仅是Qt制作的应用程序,就连Qt Cr ...
- linux下sublime输入中文
title: linux下sublime输入中文 date: 2017-11-09 20:54:43 tags: sublime categories: 开发工具 archlinux系统 下载文件 g ...
- 解决archlinux下QT程序,以及wineQQ无法输入中文(.xinitrc)
昨天安了i3wm,发现fcitx在很多程序中无法输入中文,nixnote2,还有ss-qt5 查了wiki,明明有在~/.xinitrc中加入 export XMODIFIERS=@im=fcitx ...
- 解决QT Creator在Linux下的输入法问题
https://vjudge1.github.io/2014/04/02/type-chinese-in-linux/http://blog.csdn.net/ubuntutouch/article/ ...
- sublime linux下无法输入中文
cd ~ vim sublime_imfix.c 输入 #include <gtk/gtkimcontext.h> void gtk_im_context_set_client_windo ...
- 完美解决 Linux 下 Sublime Text 中文输入
首先,我参考了好几篇文章,都是蛮不错的,先列出来: sublime-text-imfix:首先推荐这个方法,最简单,但是在我的系统上有些问题.可用这个的强烈推荐用这个 完美解决 Linux 下 Sub ...
- 解析 Qt 程序在Windows 下发布
原文请看:http://www.cnblogs.com/elect-fans/archive/2012/03/15/2408579.html Qt 程序在Windows下发布是本文要介绍的内容,不多说 ...
- QT程序在windows下部署发布
转载:http://www.cnblogs.com/Fan_Fan/archive/2010/05/29/1746860.html QT程序在windows下部署发布 以下包括了部分网上收集的,以及q ...
随机推荐
- C#中模拟用户登陆SharePoint网站
自动化测试一个SharePoint网站,首先要登陆,我们今天就模拟一下用户登陆SharePoint网站的过程,这一过程可以通过其他方式完成模拟,比如通过Coded UI Test录制脚本会更方便,但是 ...
- CSS初始化设置
在网页开发时,由于浏览器默认加载的css样式使得页面显示的样式出现一些意想不到的意外样式,所以首先要进行css的初始化设置. 此外一些常用的样式,比如浮动等也可以放到初始化中备用.
- dp之分组背包hdu3535(推荐)
题意:有0,1,2三种任务,0任务中的任务至少得完成一件,1中的任务最多完成1件,2中的任务随便做.每一个任务最多只能做一次 .n代表有n组任务,t代表有t分钟,m代表这组任务有m个子任务,s代表这m ...
- 求链表倒数第k个节点
程序员面试题6-查找链表中倒数第k个结点 (-- ::)转载▼ 标签: 杂谈 分类: 程序设计 题目:输入一个单向链表,输出该链表中倒数第k个结点.链表的倒数第0个结点为链表的尾指针.链表结点定义如下 ...
- 74HC123D 引脚介绍及应用
Pin description Symbol Pin Description 1A 1 negative-edge triggered inpu ...
- Testng 的数据源 驱动測试 代码与配置
JUnit中有讲述使用注解的方式进行数据源读取进行自己主动循环測试的方法,在TestNG中也提供了对应的方法 public class TestngDataProvider { /** * 数组内的每 ...
- 在Ubuntu中安装PHP,MySQL,Nginx和phpMyAdmin
apt install php apt-get install php7.0 apt-get -y install php7.0-fpm 缺少 mysqli 扩展.请检查 PHP 配置. apt in ...
- C++之程序时间统计类实现
/********** TimeCounter.h huangsy13@gmail.com **********/ #ifndef TIMECOUNTER #define TIMECOUNTER #i ...
- am335x hid-multitouch.c
am335x在使用电容屏,需要加载hid-multitouch.ko模块 由下面文件生成 kernel/drivers/hid/hid-multitouch.c 内核中编译模块 make module ...
- Netstat命令(windows下)
功能: 一般用于检验本机各端口的网络连接情况. 例子:检查本机3389远程连接端口是否可用 netstat -nao|find "3389" 查看某进程使用的端口号: netst ...