在安装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

( 第一次配置archlinux出错多啊)

安装完系统之后发现,虽然安装了ibus,可是QT的程序都不能输入,心中纳闷,也很郁闷。-我安装的是KDE。

上网搜资料,方法正是五花八门,但是,针对的都是scim或者fcitx的问题,ibus都没有,试试看,效果也不好,都失败了。
搜到另一个帖子时,有人回答说:“是locale没设好”,突然想起来,当初听wiki的建议,为了防止乱码没有设置locale,试试看locale吧。
打开/etc/locale.gen,将zh_CN前的#号全部删除,输入sudo locale-gen,提示成功设置。
这回再试试看输入中文,仍然失败。
此处系统默认locale仍然为en_US,输入locale命令就知道了
想了想,又打开系统设置-语言,手动将中文设置为系统默认。
 

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

还需要打开登陆界面进行设置
最后查找archlinux的wiki,在locale设置中有如下文字:
在KDE或者gnome桌面环境下,由各自的系统管理器设置kdm或者gdm。(登录管理器的配置文件决定系统语言)
由于当初安装时没有查到kdm的管理器,因此安装的是gdm,启动的也是gdm,是不是这个缘故?可是kdm该怎么安装呢?查找wiki得知,kdm就包含在kdebase-workspace也就是kde桌面的安装包内。打开 /usr/bin,眼见kdm赫然在里面躺着!原来我已经安装了。
于是修改 /etc/rc.conf,将最后一行的gdm,改为kdm,重启系统。
最后,实验成功!
此时只有部分支持
补充话外:
其实在上面的设置完成以后,并没有成功的能在所有的QT程序里输入中文,下面补充一下设置:
首先设置locale.gen错误,当初只是把中文列入了支持语言列表,却没有成为默认设置语言,第二没有安装ibus的qt版本,需要继续做以下行动:
运行终端,输入
pacman -S ibus-qt
#安装QT支持
打开~/.bashrc,添加下列文字:
export XMODIFIERS="@im=ibus"
export GTK_IM_MODULE=ibus
export QT_IM_MODULE=xim
export ibus &
export LC_CTYPE=zh_CN.utf8
保存
#新建ibus.sh,将上述语句与ibus-daemon -d添加到其中,最后设置该脚本为系统自启动,就不需要先启动终端了。
接着,打开系统设置systemsettings,选择“登录设置”,在下拉菜单中将登录界面语言设置为“zh_CN UTF-8”,重启系统。
做完上述操作后,输入
qtconfig
打开QT设置,切换到“界面”选项,将默认输入法修改为ibus。
做完这一切就打开QT程序,就都支持ibus了。

解决Qt程序在Linux下无法输入中文的办法(与下文连接)的更多相关文章

  1. 解决Qt程序在Linux下无法输入中文的办法

    解决Qt程序在Linux下无法输入中文的办法 一位网友问我怎样在Linux的Qt的应用程序中输入中文,我一開始认为不是什么问题,可是后面自己尝试了一下还真不行.不仅是Qt制作的应用程序,就连Qt Cr ...

  2. 【Qt开发】解决Qt程序在Linux下无法输入中文的办法

    解决Qt程序在Linux下无法输入中文的办法 一位网友问我如何在Linux的Qt的应用程序中输入中文,我一开始觉得不是什么问题,但是后面自己尝试了一下还真不行.不仅是Qt制作的应用程序,就连Qt Cr ...

  3. linux下sublime输入中文

    title: linux下sublime输入中文 date: 2017-11-09 20:54:43 tags: sublime categories: 开发工具 archlinux系统 下载文件 g ...

  4. 解决archlinux下QT程序,以及wineQQ无法输入中文(.xinitrc)

    昨天安了i3wm,发现fcitx在很多程序中无法输入中文,nixnote2,还有ss-qt5 查了wiki,明明有在~/.xinitrc中加入 export XMODIFIERS=@im=fcitx ...

  5. 解决QT Creator在Linux下的输入法问题

    https://vjudge1.github.io/2014/04/02/type-chinese-in-linux/http://blog.csdn.net/ubuntutouch/article/ ...

  6. sublime linux下无法输入中文

    cd ~ vim sublime_imfix.c 输入 #include <gtk/gtkimcontext.h> void gtk_im_context_set_client_windo ...

  7. 完美解决 Linux 下 Sublime Text 中文输入

    首先,我参考了好几篇文章,都是蛮不错的,先列出来: sublime-text-imfix:首先推荐这个方法,最简单,但是在我的系统上有些问题.可用这个的强烈推荐用这个 完美解决 Linux 下 Sub ...

  8. 解析 Qt 程序在Windows 下发布

    原文请看:http://www.cnblogs.com/elect-fans/archive/2012/03/15/2408579.html Qt 程序在Windows下发布是本文要介绍的内容,不多说 ...

  9. QT程序在windows下部署发布

    转载:http://www.cnblogs.com/Fan_Fan/archive/2010/05/29/1746860.html QT程序在windows下部署发布 以下包括了部分网上收集的,以及q ...

随机推荐

  1. Python中写一个乒乓球类的游戏

    最近开始学Python,感觉挺好玩的,既有脚本语言的灵活性,又有丰富的类库与面向对象的特点,开发起来很方便. 游戏的规则和乒乓球一样,如果妙蛙种子掉地上了就算输,你可以用蓝色的跷跷板弹它,使他不落到地 ...

  2. 判断Service是否在运行

    private boolean isServiceRunning() { ActivityManager manager = (ActivityManager) getSystemService(AC ...

  3. vi-vim :删除、撤销、恢复删除、复制删除

    删除 1 删除命令 vi命令 操作键 x 删除当前光标处的字符 X 删除光标左边的字符 D 删除从当前光标到本行末尾的字符 J 删除两行之间的换行符 (亦可用于合并两行) dmove 删除从当前光标到 ...

  4. 一款基jquery超炫的动画导航菜单

    今天给大家分享一款基jquery超炫的动画导航菜单.这款导航菜单,初始时页面中间一个按钮,单击按钮,菜单从左侧飞入页中.再次单击按钮,导航飞入左侧消息.动画效果很非常炫.一起看下效果图: 在线预览   ...

  5. socket编程函数

    连接 TCP/IP协议规定网络数据传输应采用大端字节序 socket地址 struct sockaddr{ unsigned short sa_family; char sa_data[14]; }; ...

  6. RESTful测试工具-RESTClient

    很多测试人可能对RESTful的概念还是很模糊的,那么到底什么是RESTful?百度百科给出的一句话描述是一个架构样式的网络系统,似乎还是有点不懂?OK,说到Restful,我们一般从REST开始说起 ...

  7. CDH安装kafka

    摘要:前言其实cloudera已经做了这个事了,只是把kafka的包和cdh的parcel包分离了,只要我们把分离开的kafka的服务描述jar包和服务parcel包下载了,就可以实现完美集成了.具体 ...

  8. hadoop错误之ClassNotFoundException(下)

    hadoop开发环境:window上eclipse+虚拟机的ubuntu13.04+hadoop-1.1.2+JDK1.7 在win7下运行hadoop-1.1.2 worldcount代码的时候出现 ...

  9. GridView截取某一列字符串的长度

    Gridview中,如果你的某一列字符串的长度过长,不做处理的话.那么将显示的奇丑无比, 可以采取设置样式,将其显示为定长,可以在点击查看的时候,在另一个页面对其进行显示 首先在前台设置样式 < ...

  10. 百万级PHP网站架构工具箱

    在了解过世界最大的PHP站点,Facebook的后台技术后,今天我们来了解一个百万级PHP站点的网站架构:Poppen.de.Poppen.de是德国的一个社交网站,相对Facebook.Flickr ...