1.解决Win平台中文显示

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

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

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

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

需要添加头文件:

#include <QTextCodec>

在main()函数加入:

  QTextCodec *codec = QTextCodec::codecForName("utf8"); 

  QTextCodec::setCodecForTr(codec);

  QTextCodec::setCodecForLocale(codec);

  QTextCodec::setCodecForCStrings(codec);

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

添加头文件:

#include <QTextCodec>

在main()函数加入:

  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函数里添加以下代码

//注意:必须要放在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了,如下图所示:

 如果需要项目文件在Win/Linux上都要运行

设置Qt Creator:

进入编辑->选择编码  ,选择UTF-8类型

进入工具->选项->文本编辑器->行为,选择UTF-8编码

在代码里只需要调用:

char s[]="utf-8";
QTextCodec::setCodecForTr(QTextCodec::codecForName(s));
QTextCodec::setCodecForLocale(QTextCodec::codecForName(s));
QTextCodec::setCodecForCStrings(QTextCodec::codecForName(s));

就不再需要考虑,项目文件转编码问题了.

												

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

  1. 静态库和动态库的区别和win平台和linux平台代码实现

    静态库和动态库的区别   什么是库 库是写好的,现有的,成熟的,可以复用的代码.现实中每个程序都要依赖很多基础的底层库,不可能每个人的代码都从零开始,因此库的存在意义非同寻常. 本质上来说,库是一种可 ...

  2. 【转】Redis安装整理(window平台和Linux平台)

    原文连接:http://zheng12tian.iteye.com/blog/1471726 原文作者:zheng12tian 转载注明以上信息! window平台Redis安装 redis wind ...

  3. 由Windows开发平台向Linux平台转移的一些想法

    从毕业到现在已经快20年了,一直在从事Windows平台上的开发工作.刚毕业那会大约是97,98年左右,工作的平台除了Windows平台还有Dos平台,因为在学校学习时,也是从Dos开始的.因此对于从 ...

  4. vim应用:终极解决windows系统gvim/vim的各种乱码(文件,菜单,提示信息)!

    这个方法解决了我的windows下 gvim的中文乱码问题(跟大家分享一下). 此方法引用   http://www.douban.com/note/145491549/ 查看文件的编码::echo ...

  5. 采用Sambaserver由win平台,linux平台上传文件

    1.构造yum [root@db /]# cd /etc/yum.repos.d/ [root@db yum.repos.d]# vi yum.repo --改动光盘挂载位置,enabled设置为启动 ...

  6. Caffe学习系列(12):训练和测试自己的图片--linux平台

    Caffe学习系列(12):训练和测试自己的图片   学习caffe的目的,不是简单的做几个练习,最终还是要用到自己的实际项目或科研中.因此,本文介绍一下,从自己的原始图片到lmdb数据,再到训练和测 ...

  7. 解决websphere在aix linux下日志乱码

    管理控制台--->服务器--->应用程序服务器--->server1--->java和进程管理--->进程定义--->java虚拟机--->将通用jvm参数设 ...

  8. php如何分割字符串?php mb_substr分割字条串,解决中文乱码问题,支持分割中文! (转)

    因为网站开发需要,必须有一项功能可以把字符串一个一个分割开来,并且转换为数组. 刚开始用“str_split函数”在实验分割中文字符时就出现了乱码. 蚂蚁学院经过一翻研究,最终发现以下方法可以有效分割 ...

  9. 将Blender3d软件语言改为中文设置(win各版本+Linux)

    Blender作为开源软件,为全世界的媒体工作者和艺术家而设计,可以被用来进行 3D 可视化,同时也可以创作广播和电影级品质的视频,另外内置的实时 3D 游戏引擎,让制作独立回放的 3D 互动内容成为 ...

随机推荐

  1. Hadoop 和 MPP 的比较

    如果我们回顾5年前会发现,那就是当时Hadoop不是大多数公司的选择,特别是那些要求稳定和成熟的平台的企业. 在这一刻,选择非常简单:当您的分析数据库的大小超过5-7 TB时,您只需启动MPP迁移项目 ...

  2. RabbitMQ 使用主题进行消息分发

    在上篇文章RabbitMQ消息队列(五):Routing 消息路由 中,我们实现了一个简单的日志系统.Consumer可以监听不同severity的log.但是,这也是它之所以叫做简单日志系统的原因, ...

  3. dubbo 源码学习1 服务发布机制

    1.源码版本:2.6.1 源码demo中采用的是xml式的发布方式,在dubbo的 DubboNamespaceHandler 中定义了Spring Framework 的扩展标签,即 <dub ...

  4. Linux系统安装Mysql5.7

    1.下载tar包,这里使用wget从官网下载 wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.22-linux-glibc2. ...

  5. ProgressBar 进度条开源项目总结

    在Android开发中,我们不免会遇到进度条展示的需求,以下是本人之前star的开源项目,供大家参考: 一.ArcProgressBar 开源项目地址:https://github.com/zenoT ...

  6. 【翻译】Neural Collaborative Filtering--神经协同过滤

    [说明] 本文翻译自新加坡国立大学何向南博士 et al.发布在<World Wide Web>(2017)上的一篇论文<Neural Collaborative Filtering ...

  7. java实操之使用jcraft进行sftp上传下载文件

    sftp作为临时的文件存储位置,在某些场合还是有其应景的,比如对账文件存放.需要提供一个上传的工具类.实现方法参考下: pom.xml中引入类库: <dependency> <gro ...

  8. 使用EF+ASP.NET MVC+Bootstrap开发一个功能强大的问卷调查系统

    功能简介 支持七大题型 下拉选择题.单选题.多选题.填空题.数字题.问答题.组合/矩阵题(单选组合.多选组合.填空组合.数字组合) 题库支持 每个问卷都要设置姓名.年龄.性别.学历,怎么办?题库帮您轻 ...

  9. (转)[Python 网络编程] makefile (三)

    socket.makefile(mode ='r',buffering = None,*,encoding = None,errors = None,newline = None )返回一个与套接字相 ...

  10. .NET Core + Abp踩坑和填坑记录(1)

    1. Net Core 的DI和Abp的DI并存 Startup中 ConfigureServices返回值改为IServiceProvider 在ConfigureServices最后调用retur ...