前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >12.QT4.7.4-解决WIN平台和Linux平台中文乱码,QLineEdit右击菜单中文显示

12.QT4.7.4-解决WIN平台和Linux平台中文乱码,QLineEdit右击菜单中文显示

作者头像
诺谦
发布2018-05-28 15:41:10
2.5K0
发布2018-05-28 15:41:10
举报
文章被收录于专栏:Linux驱动Linux驱动

1.解决Win平台中文显示

1.1首先解决win平台上中文显示乱码问题

1)首先查看qt creator的编码格式

通过->编辑->选择编码 查看.

2)如果qt creator的编码格式是utf8,并且项目里的汉字是utf8类型时

需要添加头文件:

代码语言:javascript
复制
#include <QTextCodec>

在main()函数加入:

代码语言:javascript
复制
  QTextCodec *codec = QTextCodec::codecForName("utf8"); 

  QTextCodec::setCodecForTr(codec);

  QTextCodec::setCodecForLocale(codec);

  QTextCodec::setCodecForCStrings(codec);

3)如果qt creator的编码格式是GBK,并且项目里的汉字是GBK类型时

添加头文件:

代码语言:javascript
复制
#include <QTextCodec>

在main()函数加入:

代码语言:javascript
复制
  QTextCodec *codec = QTextCodec::codecForName("GBK"); //GBK gbk

  QTextCodec::setCodecForTr(codec);

  QTextCodec::setCodecForLocale(codec);

  QTextCodec::setCodecForCStrings(codec);

1.2 其次解决按钮、QLineEdit等编辑组件右击菜单等英文问题

如下图所示:

步骤:

1)搜索qt_zh_CN.ts ,找到位于: C:\Qt\4.7.4\translations\qt_zh_CN.ts

2)在开始程序里打开qt预言家(linguist.exe)

3)通过linguist.exe打开找到的qt_zh_CN.ts文件,进行翻译

如下图所示,发现都是大多翻译好了的:

上面

表示该文件的tr("")字符串已被翻译完

接下来点击File->Release 生成翻译文件: qt_zh_CN.qm

4)再将qt_zh_CN.qm放到自己项目的资源文件里

5)在main函数里添加以下代码

代码语言:javascript
复制
//注意:必须要放在QApplication a(argc, argv);后面处,因为下面代码要初始化这个对象
QTranslator *trans = new QTranslator;
trans->load(":/res/qm/qt_zh_CN.qm"); 
QCoreApplication::installTranslator(trans);

6)测试效果

2.解决Linux平台中文显示

2.1解决乱码,无法打印中文

有可能是qt配置界面的字体不支持中文

1)输入命令qtconfig

2)进入Qt配置界面,如下图所示,如果发现乱码,那就说明qt配置字体错了:

3)点击第2格,然后选择字体,只要能显示中文出来,便可以:

4.设置好后,退出并保存,然后运行自己写的记事本程序效果:

5)发现使用QPlainTextEdit编辑组件无法打出汉字

找到是输入法没有全局设置,输入命令ibus-setup,然后勾上全局设置:

PS:Linux下的中文输入法默认输入是UTF-8,所以需要保证qt creator编码格式也是UTF-8,否则输入中文会乱码

2.2其次解决按钮、QLineEdit等编辑组件右击菜单等英文问题

1)输入sudo find /  -name  qt_zh_CN*

从上图可以看到,qt已经为我们做好了qt_zh_CN.qm,然后将这个拷贝出来,加入到资源里

2)和Win平台一样,通过代码调用qt_zh_CN.qm

3)试验效果,发现按钮, QLineEdit右击菜单还是显示英文

4)使用qt预言家(linguist)从新发布试试

输入linguist,打开找到的qt_zh_CN.qm:

发现都是翻译好了的,那再次从新发布试试.

5)从新发布后,再次调用新发布的qt_zh_CN.qm,试验效果

发现ok了,如下图所示:

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-04-28 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档