qt迁移linux有关中文字体,中文显示的问题(转)

来源:互联网 发布:unity3d麻将胡牌 编辑:程序博客网 时间:2024/05/21 06:36

转载博客原文链接http://blog.163.com/qimo601@126/blog/static/15822093201382611615112/

解决方法:
1、通过下面方法可以实现在qtcreator输入中文,切换输入法:
1)、首先要安装ibus输入法《fedora中安装IBus的中文输入法(pinyin)》
2)、安装IBus-qt4 (fedora15是自带的)

yum install ibus-qt4

3)、终端输入:vi ~/.profile ,在.profile中添加一下内容。(也可以在系统环境变量:/etc/profile中添加)。关于配置环境变量的知识,参考《Sheell配置文件 环境变量设置》。

export XMODIFIERS=”@im=ibus”
export GTK_IM_MODULE=ibus
export QT_IM_MODULE=xim
export ibus &
export LC_CTYPE=zh_CN.utf8
4)、重启就ok了。

解释:
/etc/X11/xinit/xinput.d/ibus.conf
这里写图片描述
【Qt移植到linux】问题7 qt界面中文不显示,乱码等问题 - 柳北风儿 - 柳北风儿~~~欲宇仙炅
如果未安装 ibus-qt, QT_IM_MODULE 会自动设置为 xim,所以还是可以了录入中文。而 xim 又是配置为使用 ibus。
所以,如果未装 ibus-qt,GTK程序会直接使用ibus, QT程序会通过xim使用ibus。
2、通过下面方法可以解决qt界面运行后,无法显示中文

a、直接在qt源码目录下configure出错
经过网上的一番搜索,发现是缺少fontconfig造成的,于是重新configure:

./configure -fontconfig

b、在fontconfig下面make出错
问题又来了,configure未通过,提示Fontconfig未通过,于是进入/config.tests/x11/fontconfig目录,执行make,发现缺少freetype相关的头文件,首先保证freetype开发库已经安装:

yum install freetype

yum install freetype-devel

再次在这里make,还是出错,发现缺少fontconfig开发库,于是

yum install fontconfig-devel

再次make,不再出错。
错误情况介绍:
错误1: ft2build.h: No such file or directory
命令yum install fontconfig-devel问题解决。
错误2: /usr/include/ft2build.h:56: fatal error: freetype/config/ftheader.h: No such file or directory
命令 ln -s /usr/include/freetype2/freetype/ /usr/include/freetyp问题解决。
c、然后进入Qt源代码目录,再次执行

./configure -fontconfig

通过。
d、发布带中文字库的qt

gmake

gmake install

完成。

运行结果如下:
这里写图片描述

这个时候终端输入:

fontconfig &

查看,font标签窗口,里面已经有中文字库支持了
这里写图片描述

备注1:
在linux上,qt中其实不需要更改编码,就可以正常显示中文。
既不需要在main函数中加入如下代码,也不需要在qtcreator选项中配置文件编码。qt默认的UTF-8 有BOM的格式,已经很好的解决了中文乱码问题。
QTextCodec *codec = QTextCodec::codecForName(“UTF-8”);
QTextCodec::setCodecForTr(codec);
QTextCodec::setCodecForLocale(codec);
QTextCodec::setCodecForCStrings(codec);

1 0
原创粉丝点击