12.QT4.7.4-解决WIN平台和Linux平台中文乱码,QLineEdit右击菜单中文显示
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右击菜单中文显示的更多相关文章
- 静态库和动态库的区别和win平台和linux平台代码实现
静态库和动态库的区别 什么是库 库是写好的,现有的,成熟的,可以复用的代码.现实中每个程序都要依赖很多基础的底层库,不可能每个人的代码都从零开始,因此库的存在意义非同寻常. 本质上来说,库是一种可 ...
- 【转】Redis安装整理(window平台和Linux平台)
原文连接:http://zheng12tian.iteye.com/blog/1471726 原文作者:zheng12tian 转载注明以上信息! window平台Redis安装 redis wind ...
- 由Windows开发平台向Linux平台转移的一些想法
从毕业到现在已经快20年了,一直在从事Windows平台上的开发工作.刚毕业那会大约是97,98年左右,工作的平台除了Windows平台还有Dos平台,因为在学校学习时,也是从Dos开始的.因此对于从 ...
- vim应用:终极解决windows系统gvim/vim的各种乱码(文件,菜单,提示信息)!
这个方法解决了我的windows下 gvim的中文乱码问题(跟大家分享一下). 此方法引用 http://www.douban.com/note/145491549/ 查看文件的编码::echo ...
- 采用Sambaserver由win平台,linux平台上传文件
1.构造yum [root@db /]# cd /etc/yum.repos.d/ [root@db yum.repos.d]# vi yum.repo --改动光盘挂载位置,enabled设置为启动 ...
- Caffe学习系列(12):训练和测试自己的图片--linux平台
Caffe学习系列(12):训练和测试自己的图片 学习caffe的目的,不是简单的做几个练习,最终还是要用到自己的实际项目或科研中.因此,本文介绍一下,从自己的原始图片到lmdb数据,再到训练和测 ...
- 解决websphere在aix linux下日志乱码
管理控制台--->服务器--->应用程序服务器--->server1--->java和进程管理--->进程定义--->java虚拟机--->将通用jvm参数设 ...
- php如何分割字符串?php mb_substr分割字条串,解决中文乱码问题,支持分割中文! (转)
因为网站开发需要,必须有一项功能可以把字符串一个一个分割开来,并且转换为数组. 刚开始用“str_split函数”在实验分割中文字符时就出现了乱码. 蚂蚁学院经过一翻研究,最终发现以下方法可以有效分割 ...
- 将Blender3d软件语言改为中文设置(win各版本+Linux)
Blender作为开源软件,为全世界的媒体工作者和艺术家而设计,可以被用来进行 3D 可视化,同时也可以创作广播和电影级品质的视频,另外内置的实时 3D 游戏引擎,让制作独立回放的 3D 互动内容成为 ...
随机推荐
- Leetcode 34 Find First and Last Position of Element in Sorted Array 解题思路 (python)
本人编程小白,如果有写的不对.或者能更完善的地方请个位批评指正! 这个是leetcode的第34题,这道题的tag是数组,需要用到二分搜索法来解答 34. Find First and Last Po ...
- jquery validate 校验使用总结
一.jquery.validator表单验证id和name问题 因为后台是struts,表单提交,所有输入框的值保存在name=对象.名字中,而jquery.validator表单验证用的是name, ...
- API网关-Ocelot概述
这个框架的整体思路其实就是Redirect请求并且附带一个简易的负载均衡机制,完全搭建MVC Core项目下在Ocelot项目启动的时候需要配置所有的ReRoute集合,这里的每一个ReRoute可以 ...
- React 和 Redux 结合 1
React依赖: "devDependencies": { "babel-core": "^6.26.0", "babel-loa ...
- Hadoop集群及基本组件搭建
本人采用一个master和两个slave的网络结构,具体搭建如下 1.准备安装包 1.下载安装包 http://pan.baidu.com/s/1jIoZulw 2.安装包清单 scala-2.12. ...
- HTB Linux queuing discipline manual - user guide笔记
1. Introduction HTB is meant as a more understandable, intuitive and faster replacement for the CBQ ...
- win10 系统下无法正常安装 Anaconda3
最近国庆两天,突然心血来潮重装了一遍系统,重装成了win10系统以后毛病百出哇,昨天和今天一直在解决一个问题,那就是安装Anaconda3的时候出现不了快捷方式,如下图这样只有一个快捷方式(在win7 ...
- 腾讯开源 MMKV — 基于mmap的高性能通用key-value组件
一.介绍 MMKV 是基于 mmap 内存映射的 key-value 组件,底层序列化/反序列化使用 protobuf 实现,性能高,稳定性强.从 2015 年中至今,在 iOS 微信上使用已有近 3 ...
- Javascript高级编程学习笔记(51)—— DOM2和DOM3(3)操作样式表
操作样式表 在JS中样式表用一种类型来表示,以便我们在JS对其进行操作 这一类型就是CSSStyleSheet 即CSS样式表类型,包括了之前 style 对象所不包括的外部样式表以及嵌入样式表 其中 ...
- CentOS7设置固定IP
在安装完CentOS7后,当我每次启动CentOS并使用SecureCRT链接时,都发现CentOS的IP总是在变,这就很苦恼了,总不能每次链接的时候都先查一下虚拟机的IP吧,所以打算把它设置成固定I ...