RedHat6.3(linux)编译Qt4.8.6中文不显示的解决方法

最近在RedHat中编译了Qt4.8.6,运行自己写的测试程序时,发现只有窗口的标题栏可以显示中文,窗口内的中文都不显示(不是显示乱码,是根本就不显示)。查询过程中,发现网友“柳北风儿”也遇到了同样的问题,不过他用的系统是fedora15,Qt版本是4.7.4。按照他提供的步骤,果然实现了中文正常显示,现在记录一下。

1.安装相关rpm包

我用的是虚拟机,安装RedHat光盘中自带的4个rpm包,如下图所示。

RedHat6.3(linux)编译Qt4.8.6中文不显示的解决方法_第1张图片

它们在光盘中的路径是/media/RHEL_6.3 i386 Disc 1_/Packages

安装指令rpm -ivh ***.rpm

2.编译Qt

cd到Qt源码,执行以下指令

./configure -fontconfig

gmake 

gmake install

默认安装到/usr/local/Trolltech/Qt-4.8.6

Qt使用时会提示expetced identifier before ‘void’错误,双击该错误,定位到qmetatype.h的第66行,将该行的”Void=0,“注释掉即可

3.配置字体

双击/usr/local/Trolltech/Qt-4.8.6/bin/qtconfig,打开Qt Configuration对话框,并选中Fonts标签页,如下图所示。

RedHat6.3(linux)编译Qt4.8.6中文不显示的解决方法_第2张图片

注意到Family下拉列表最后三行是文泉驿正黑字体,支持中文显示。如果configure时不加-fontconfig参数,这三行是不会显示的。我选择了WenQuanYi Zen Hei,然后关闭该对话框。

个人感觉文泉驿正黑字体是RedHat自带的字体,只不过通过配置fontconfig参数让Qt可以识别到,因为/usr/share/fonts中就包含这种字体。

4.再次运行测试程序

可以显示中文了,当然main函数中下列代码是不可少的。

QTextCodec *codec = QTextCodec::codecForName("UTF-8");
QTextCodec::setCodecForCStrings(codec);
QTextCodec::setCodecForTr(codec);
QTextCodec::setCodecForLocale(codec);

非常感谢“柳北风儿”

参考链接:http://blog.163.com/qimo601@126/blog/static/15822093201382611615112/


柳北风

你可能感兴趣的:(Qt)