查看完整版本: [-- 解决Qt5 Creator无法切换输入法(fcitx),不能录入汉字问题 --]

QTCN开发网 -> Qt中文处理 -> 解决Qt5 Creator无法切换输入法(fcitx),不能录入汉字问题 [打印本页] 登录 -> 注册 -> 回复主题 -> 发表主题

jeffreylee 2014-07-03 09:34

解决Qt5 Creator无法切换输入法(fcitx),不能录入汉字问题

2015年9月12日补充:
由于Qt5.4对之前的Qt5版本不是二进制兼容,导致系统提供的libfcitxplatforminputcontextplugin.so不在能正常工作,起先会导致Qt Creator崩溃,后来崩溃解决,但输入依然切换不出来,fcitx-qt5开发小组在fcitx-qt51.0.3版解决bug,因此解决问题的办法是自己编译最新fcitx-qt5 详细步骤再这里:
解决Qt5 Creator无法切换输入法(fcitx),Ubuntu中不能使用搜狗输入法录入汉字问题



------------------------------------------------------------------------------------------------------------------------
笔者系统环境,Ubuntu 14.04,输入法fcitx下搜狗输入法。
其它非Ubuntu linux发行版,不通过软件源安装Qt5,从Qt官网http://qt-project.org/下载安装包,也存在这个问题。
在Ubuntu下解决方法如下,其它linux发行版解决方法雷同
1.安装fcitx for Qt5动态库
sudo apt-get install fcitx-libs-qt5
注:这一个命令执行完毕后,系统中已经具备基于Qt5的程序的汉字录入环境支持。存在一个奇怪现象是,Qt5所带的Qt Creator依然无法切换输入法,而且刚刚编译的程序,也无法录入汉字,但卸载掉Qt5开发环境后,刚刚编译的程序居然可以切换输入法,录入汉字了。这个现象说明,卸载Qt5开发环境后,同样的程序,使用系统提供的依赖库环境,录入汉字问题消失。问题出在Qt5开发环境缺少fcix for Qt5动态库上面。
2.向Qt5开发环境安装fcitx for Qt5支持
进入 /Qt5.3.1/Tools/QtCreator/bin/plugins/platforminputcontexts 目录发现
官网提供的安装包仅仅有libibusplatforminputcontextplugin.so,对ibus输入法的支持
cd ~/Qt5.3.1/Tools/QtCreator/bin/plugins/platforminputcontexts
cp /usr/lib/x86_64-linux-gnu/qt5/plugins/platforminputcontexts/libfcitxplatforminputcontextplugin.so .
chmod +x  libfcitxplatforminputcontextplugin.so

上面解决了Qt5 Creator汉字输入问题,新编译的程序运行库环境目录是~/Qt5.3.1/5.3/gcc_64/plugins/platforminputcontexts$
依然执行如下命令
cd ~/Qt5.3.1/5.3/gcc_64/plugins/platforminputcontexts$
cp /usr/lib/x86_64-linux-gnu/qt5/plugins/platforminputcontexts/libfcitxplatforminputcontextplugin.so .
chmod +x  libfcitxplatforminputcontextplugin.so


rpdhunter 2014-10-12 10:35
楼主,我也遇到了这个问题,按照你的方法执行了第一步,但第二步执行出错,系统没有这个文件,请问哪里出了问题?

asakura 2015-06-16 09:27
楼主,我安装您的方法试了之后,打开Qt Creator就一闪而过然后报段错误,我是在64位Debian8下,纠结死了

彩阳 2015-07-21 19:27
asakura:楼主,我安装您的方法试了之后,打开Qt Creator就一闪而过然后报段错误,我是在64位Debian8下,纠结死了 (2015-06-16 09:27) 

因为上面的那个插件不兼容最新的Qt Creator和Qt 5.5。需要重新编译那个libfcitxplatforminputcontextplugin插件才行。我还没有试过,比较麻烦,需要下载Qt Creator的源码才行。

彩阳 2015-09-17 13:15
中文问题已经解决了,参考:
http://my.oschina.net/lieefu/blog/505363

彩阳 2015-09-17 13:15
这个问题已经解决了,核心是要编译fcitx这个插件。我试了一下,可以用。目前Qt程序都可以进行中文的输入了。
参考:http://www.qtcn.org/bbs/read.php?tid=56908&ds=1&page=1&toread=1#tpc
以及:http://my.oschina.net/lieefu/blog/505363(重要)

彩阳 2015-11-05 13:17
5.5.1的这样的插件还和5.5.0的不兼容呢,还得重新编译一下,重新获取XKBCommon这个库。

david4383 2016-01-15 10:02
彩阳:5.5.1的搞定输入法了吗?我现在用的5.5.1的不行啊。使用你那个5.5.0的也不行。有没有弄好啊,发个贴子啊。

彩阳 2016-01-16 19:49
david4383:彩阳:5.5.1的搞定输入法了吗?我现在用的5.5.1的不行啊。使用你那个5.5.0的也不行。有没有弄好啊,发个贴子啊。 (2016-01-15 10:02) 

我已经弄好了,现在Ubuntu下输入中文没有问题了。

彩阳 2016-01-23 19:00
如果对于编译和运行fcitx插件依然有困难,大家可以下载Qt Creator增强套装。这里包含了我已经编译好的插件。

彩阳 2016-01-23 19:00
地址是:http://qtdream.com/topic/181

lizzzaaa 2016-04-19 10:57
楼主在吗,我的qt5.3.1在ubuntu14.04 32位系统下变通用户能输入中文,但在root下输入不了,是按照你教的做了。这该怎么办呢

lizzzaaa 2016-04-19 10:58
lizzzaaa:楼主在吗,我的qt5.3.1在ubuntu14.04 32位系统下变通用户能输入中文,但在root下输入不了,是按照你教的做了。这该怎么办呢 (2016-04-19 10:57) 

输入法是搜狗拼音

彩阳 2016-05-21 11:06
Qt Creator 4.0.0下再次无法使用搜狗输入法了。目前还没有比较好的方法能够解决这个问题,看来还要询问一下fcitx团队看如何得到解决了。

misgn 2017-09-04 21:04
彩阳:Qt Creator 4.0.0下再次无法使用搜狗输入法了。目前还没有比较好的方法能够解决这个问题,看来还要询问一下fcitx团队看如何得到解决了。 (2016-05-21 11:06) 

hdp@hdp-virtual-machine:~/fcitx-qt5$ make
[  0%] Built target fcitx-scan-addons.target
[  0%] Built target fcitx-modules.target
[  3%] Automatic MOC for target FcitxQt5DBusAddons
[  3%] Built target FcitxQt5DBusAddons_autogen
[  6%] Linking CXX shared library libFcitxQt5DBusAddons.so
CMakeFiles/FcitxQt5DBusAddons.dir/fcitxqtconnection.cpp.o: In function `FcitxQtConnectionPrivate::FcitxQtConnectionPrivate(FcitxQtConnection*)':
fcitxqtconnection.cpp:(.text+0x2bb): undefined reference to `vtable for FcitxQtConnectionPrivate'
CMakeFiles/FcitxQt5DBusAddons.dir/fcitxqtconnection.cpp.o: In function `FcitxQtConnectionPrivate::~FcitxQtConnectionPrivate()':
fcitxqtconnection.cpp:(.text+0x4e4): undefined reference to `vtable for FcitxQtConnectionPrivate'
collect2: error: ld returned 1 exit status
make[2]: *** [dbusaddons/libFcitxQt5DBusAddons.so.1.0] Error 1
make[1]: *** [dbusaddons/CMakeFiles/FcitxQt5DBusAddons.dir/all] Error 2
make: *** [all] Error 2
hdp@hdp-virtual-machine:~/fcitx-qt5$

为什么会出现这种情况呢?


查看完整版本: [-- 解决Qt5 Creator无法切换输入法(fcitx),不能录入汉字问题 --] [-- top --]



Powered by phpwind v8.7 Code ©2003-2011 phpwind
Gzip disabled