关于树莓派raspbian系统编写QT程序时的中文输入问题(无法正常debug)
硬件:树莓派3B
系统:2017-08-16-raspbian-stretch.img
本以为是个简单的问题,可是解决起来还是碰到了许多困难,甚至一度放弃了。
其实在linux下解决QT中:文输入的文章有许多,但到了树莓派这里都遇到了问题。参考了许多文章没有解决。
最终只好采取妥协办法:用QT4,使用无法输入中文的qtcreator编出可以输入中文的qt4程序。
先说一个结论。在raspbian下QT5的中文支持没有QT4好。起码暂时是这样。
在写这个步骤的时候我是重刷了一个系统一步一步做的,apt-get命令应该是可以合并的。
下面是步骤了:
1,apt-get install ibus 安装ibus输入管理程序
2,im-config 在弹出的界面(Input Method Configuration)选择ibus,在系统启动时会使用ibus来管理输入
3,apt-get install ibus-pinyin 安装pinyin输入法
4,apt-get install ttf-wqy-zenhei 安装字体库
5,运行raspi-config -> Localisation Options -> Change Locale -> zh_CN.UTF-8 UTF-8
6,apt-get install qt4-default 安装qt4,这里想安装qt5的同学可以放弃了。因为找我这么做没法搞定qt5,我试过。。。
7,apt-get install qtcreator 安装qtcreator,raspbian的安装源qtcreator是qt5版本写的。。。所以妥协要。如果同学们能找到qt4版本源的话应该也可以在ide里输入中文。
8,reboot 让ibus启动。
9,右上角有个小图标,用粗体字写着EN字样,右击点击Preferences,在弹出的窗体点击Input Method。点击Chinese,点击Chinese-Pinyin。然后点击General,设置切换输入法快捷键。设置快捷键界面当然不人性化,而且还有个问题是桌面的按键响应有些问题,所以我是直接把Input Method里的English给删了。然后用左shift切换中文输入法的中英文。
10,打开qtcreator,当然,推荐用root权限打开。配置构建Kit,新建一个工程,在界面里拖一个lineedit。qmake,编译,运行,输入!英文。别灰心,轻点shift,中文出现啦(当然前提是你像我一样只保留了中文拼音输入法,否则需要切换输入法)。
以下可以解决qtcreator中文输入的问题,但不推荐。因为无法正常debug。
11,如果有的同学强迫症一定要在qtcreator里输入中文请自己编译qtcreator。地址:http://download.qt.io/official_releases/qtcreator/2.8/2.8.1/qt-creator-2.8.1-src.tar.gz
这里之所以用2.8.1是因为这个版本是有QT4支持的,更高的版本需要QT5才能编译。而且我编译后发现这个版本在树莓派上的表现要比树莓派安装源的版本好很多。响应很灵敏。
12,https://codereview.qt-project.org/#/c/79728/1 下载这两个文件,替换掉源码中的相应文件。这两个文件的主要功能是增加对树莓派使用ARM处理器的支持。
13,qmake -r
14,make
第一次编译的时候没加-j,但不开的话编译时间蛮久的。。。具体多久我不知道。。。出现12中描述的问题出现的时候已经编译了四十分钟,解决后出去喝酒,第二天再看已经编完了。。。
-j是开启多核编译,后来我又试了一次增加-j的,过程中因为cpu使用率过高会出现桌面无响应的现象,之后系统重启。所以首先raspi-config -> Boot Options -> B1 Console
之后开机会进入命令行模式(注意开机后不会刷新掉开机logo,会让人误以为没有正常启动,其实提示登陆等内容都显示在左上角。),然后再make -j。
耗时大约需要。。。
多核编译会不停地出现g++: internal compiler error的提示,原因应该是内存不足。我在测试了一个小时后放弃了。
15,make install
16,接下来我们可以开心地写程序了,但有木有发现一个问题。debug的时候无法看到变量,具体的原因是,qtcreator需要调用python2.x脚本来进行debug但新版本的gdb不支持2.x版本的python。。。。
18,老老实实用qDebug()调试吧。。。。
17,http://blog.hostilefork.com/qtcreator-debugger-no-locals-ubuntu/
18,接下来我们自己编译gdb。
19,在这个地址下载,17文章里的那个速度太慢了:http://ftp.gnu.org/gnu/gdb/,我下的是8.1版本。
20,apt-get install ncurses-dev
21,解压gdb,进入目录运行:./configure --prefix /usr/local/gdb-python2 --with-python 其中--prefix定义的是执行make install时的安装目录。
22,make 之后make install
23,在qt的构建kit里选择新的gdb(--prefix中定义的/usr/local/gdb-python2/bin/gdb)。再尝试debug一下,还是不行。还是qtcreator的bug。
24,17文章博主的解决办法:mv /usr/bin/gdb /usr/bin/gdb-python3 之后sudo ln -s /usr/local/gdb-python2/bin/gdb /usr/bin/gdb