这篇文章写于QT5.6的诞生,它是QT5的第一个长期支持版。这也是QT5已成熟的里程碑。

我搭建的环境是:Win10+VS2015+QT5.6+QtCreator

在安装VS2015的时候,若是用QtCreator开发,那么只需选择“适用于VC2015的公共工具”仅此一项,安装耗时则仅需20分钟左右。

Win+VS+QT5+QtCreator,在源文件里有中文的时候,例如SetWindowTitle("哈哈哈");会提示错误:常量中有换行符。解决方式两步走:

第一步:QtCreator→工具→选项→文本编辑器→行为→文件编码→UTF-8BOM→选择“如果编码是UTF8则添加”

第二步:在源码里含中文的前面,加上“u8”,例如SetWindowTitle(u8"哈哈哈");

“u8”是c++11的内容,支持C++11的主流编译器都会支持它。

在qt4中正常的 char* p="哈哈哈"; 在qt5中需要改成 const char* p = u8"哈哈哈";

在Qt5里,QString的编码是unicode,源文件编码被强制为utf8,而简体中文的Win系统的本地编码是GBK。
换句话说,Qt5程序在简体中文的Win系统里,会有QString←GBK与GBK←QString的需求:

QString←GBK:QString str = QString::fromLocal8Bit(内容);
GBK←QString:QByteArray str = QString.toLocal8Bit();

Local8Bit 就是系统本地编码的意思,Qt 会自动识别它,对于linux就是utf8,简体中文Win就是GBK,繁体中文Win就是BIG5。

对于写传统的GUI程序,Qt4只需要包含<QtGui>即可,在Qt5中则改成<QtWidgets>,就不会出现需要包含很多头文件的情况了。别忘了 QT += widgets。

=========另==========

最近使用qt5 编写应用时中文出现常量中有换行符错误,试了QString::fromutf8、QString::fromlocal8bit都一样。但奇怪的是将中文“极差图”改为“均值图”就好了,可我均值极差图都要,文件是utf8格式的,哪位高手帮帮忙,先谢谢啦!

QTcreator 本身没问题。是你不会设置。。。 QTcreator ->工具-> 选项 ->行为-> 默认编码 设为 UTF-8,UTF-8 BOM 设为 如果编码是 UTF-8 则添加。 这样设置完后, cpp 文件自动就存为带 BOM 的 utf-8 了。 要说有问题也是微软的 vc++ 编译器有问题,无法识别不带 BOM 的 utf-8。。。

qt creator 常量中有换行符(转)的更多相关文章

  1. QT Creator有中文出现“常量中有换行符 ”的解决办法

    QT Creator有中文出现“常量中有换行符 ”的解决办法 QT Creator在QT5.9下报错“常量中有换行符 ”,我的代码中有中文,而且在Windows 10下用微软VS编译器编译.造成这个报 ...

  2. Qt && 常量中有换行符 && 中文

    [1]VS + QT开发环境,中文内容编译时提示错误error C2001:常量中有换行符 解决方案:VC的编译器,把代码格式改为带BOM的UTF8就好了 建议步骤: (1)用Notepad++打开c ...

  3. Qt5_vs2013_error_C2001: 常量中有换行符__资料

    ZC: Win7x64 + Qt551(x86) + vs2013(x86) ZC: 问题:UTF-8 在源码文件中有中文时,有时会报编译错误:C2001 & C2143 分析: --> ...

  4. VS2017.常量中有换行符

    1.VS中加入 “/utf-8” Qt中 也是加入“/utf-8”,加的地方注意下:在 pro文件中 ,这个位置加入: win32-msvc*:QMAKE_CXXFLAGS += /wd"4 ...

  5. Qt5_vs2013_error_C2001: 常量中有换行符__ZC

    ZC: 这里是解决 Windows平台下的这个 编译error :“error C2001: 常量中有换行符”. ZC: 我现在(20161221)的处理方式:vs2010或vs2015 将cpp文件 ...

  6. Visual Studio error C2001:常量中有换行符(解决办法)

    在Visual Studio自动生成的项目中,碰见了一件关于文件编码的问题,集中在类似于以下的语句上: DASLog (DASProtWarn, L"(%s)消息超时,进入慢循环召唤模式.& ...

  7. 应对 Visual Stdio 编译时出现错误:常量中有换行符

    笔者最近用 Visual Stdio 时,发现一个问题,在某一次写完语言进行编绎运行时,出现了以下错误: C2001错误:变量中有换行符 C2413错误:语法错误 缺少")"(在& ...

  8. Qt乱码解决办法(常量中有换行符)

    用记事本打开源代码,然后点另存为,utf-8,编码覆盖 QStringLiteral("打开相机")

  9. Qt出现常量有换行符的错误的解决方法

    可以使用 QString::fromLocal8Bit 来将本地字符编码转换为 Unicode 形式的 QString.

  10. 关于 error C2001: 常量中有换行符

    看过之后,还是有所收获的,先mark一下 原链接: http://www.cnblogs.com/cocos2d-x/archive/2012/02/26/2368873.html#commentfo ...

随机推荐

  1. App测试Android的闪退总结

    Android的闪退有三种情况: 第一种:没有任何弹框提示,直接退出 第二种:有弹框提示程序异常 第三种:ANR无响应 三种情况的日志提交和检索方法:  第一种情况:是底层C挂了 **首先:提交客户端 ...

  2. 定位bug

    软件测试阶段:单元测试,集成测试,系统测试,验收测试 测试人员参与的软件测试阶段一般来说只有集成测试和系统测试阶段.集成测试阶段主要测试的是接口:系统测试阶段主要是功能测试,兼容性测试等,涉及到定位b ...

  3. 如何查看库函数实现的某些函数(strlen,strcmp,strcpy等)

    我们拿strlen()作为举例(编译环境为:VS2022) strlen()引用的头文件为 string.h,如下进行操作 ps:打开strlen.c文件 便可以看到库函数对于strlen()的实现, ...

  4. 视觉SLAM:VIO的误差和误差雅可比矩阵

    1.两个相机之间的非线性优化 观测相机方程关于相机位姿与特征点的雅可比矩阵: 1.1 位姿: 1.2 3D特征点 fx,fy,fz为相机内参 X',Y',Z'为3D点在相机坐标系下的坐标 该误差是观测 ...

  5. 五:spring boot

    五.spring boot 通过springboot可以快速的搭建一个基于ssm框架的Java application,简单配置,自动装配. JavaConfiguration用java类来替代xml ...

  6. vs修改默认端口

    1.右键项目属性进去修改 2.,用txt打开sln解决方案,框框中的就是你当前的端口号

  7. CF863E - Turn Off The TV

    题意:对于若干个闭区间 \([l_i,r_i]\),它们构成了一个集合 \(\bigcup_{i\le n}{[l_i,r_i]}\),求一个 \(k\),使得 \(\bigcup_{i\le n}{ ...

  8. 【PyCharm】配置 Git

    一.前提条件 本地先安装好:PyCharm 和 Git 二.操作步骤 1.打开 File -> Settings -> Version Control -> Git,在 Path t ...

  9. [网鼎杯2020]boom

    [网鼎杯2020]boom 分析 感觉比较友善,主要考查数学运算. 解析 解压之后发现是个exe文件,运行得到一个md5 查询: 输入明文得到: 下个挑战是解三元一次方程: 拿matlab算一下. s ...

  10. MySQL8.0 存储引擎(InnoDB )buffer pool的实现原理

      数据库为了高效读取和存储物理数据,通常都会采用缓存的方式来弥补磁盘IO与CPU运算速度差.InnoDB 作为一个具有高可靠性和高性能的通用存储引擎也不例外,Buffer Pool就是其用来在内存中 ...