解决linux/Ubuntu下Qt creater 界面程序在编译运行后无法显示中文或中文乱码问题(转)

2/22/2017来源:ASP.NET技巧人气:1513

本文解决的主要是界面程序编译运行后无法显示中文的问题,如果在creater 中无法输入中文,下载个IBus或者搜狗之类的中文输入法即可解决! 首先说乱码问题,这个很好解决: 如果是在linux下打开Windows下的项目出现乱码,选择编码为“GB2312”即可!

现在主要来说说程序运行后无法显示中文或者出现乱码的情况,被这个问题困扰了很久,网上看了很多资料贴子都没有解决,所有该添加的都添加了都没办法, http://bbs.csdn.NET/topics/390610841?page=1 按照这个贴子当中的所有方法来解决都没有成功。

我用的版本是qt-everywhere-opensource-src安装的4.8.1和4.8.5,刚开始装的是8.5,看到贴子上有说出现无法显示中文是这个版本的bug,所以又安装了个8.1不过还是没解决 (囧...)。安装方法是:http://blog.csdn.Net/willib/article/details/21968937

网上有说是缺少中文字体,但其实不然,或许和我一样只是粗心罢了。。。 终端打开qt配置:qtconfig 选择Fonts,接下来,请仔细查看Family:当中的字体,仔细一点,其实那里面有中文字体的,只不过是用的拼音,如:Fangsong Ti,Song Ti,选择其中一个,记着点击File下 面的保存啊!如:

接下来,在main文件中添加头文件 #include <QTextCodec>,然后在 Qapplication a(argc, argv); 后添加QTextCodec::setCodecForTr(QTextCodec::codecForName("GB2312"));

QTextCodec::setCodecForTr(QTextCodec::codecForLocal());       //该语句可以解决在子窗口中的乱码问题!

O了,原来只显示英文无法显示中文和中文乱码都一起解决了!

总结:很多问题,其实并没有自己想的那么难,做事儿细心一点!!!