这篇文章写于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. Jenkins搭建与数据迁移实践

    概述 本文主要介绍内容如下: 1.使用Docker搭建Jenkins 2.迁移原Jenkins数据到新搭建的Jenkins中 3.在Jenkins容器内部配置Maven的私服配置 4.在Jenkins ...

  2. 学习Java Day19

    今天学习了包(package)将类组织在一个集合里,知道了如何导入类.

  3. Redhat7.6搭建LAMP环境

    关闭防火墙和 selinux# systemctl stop firewalld systemctl disable firewalld 禁用 Selinux vim /etc/selinux/con ...

  4. 重新配置 Idea Webapp 部署

    一般 Idea 创建一个 Webapp 时已经自动配置好了,但难免出现意想不到的意外,例如,访问资源 404,编译之后没有把 jsp 页面部署进去等问题. 1️⃣第一步,配置 Project Sett ...

  5. IP 地址分类及子网划分

    IP 地址分类 在现实生活中,一个市区有许多的区,区下面又有很多的街道,街道下面又有很多的小区,A 市区.B 市区就是一个范围,每一个范围都有不同的居民数量.类比到计算机网络,A 类地址可以容纳256 ...

  6. BUUCTF—CRYPTO 1—10

    BUUCTF-CRYPTO 1-10 1.MD5 题目:e00cf25ad42683b3df678c61f42c6bda 解析:看题目就知道是MD5加密,直接上在线解码网站解码,答案是:flag 2. ...

  7. 🤗 PEFT: 在低资源硬件上对十亿规模模型进行参数高效微调

    动机 基于 Transformers 架构的大型语言模型 (LLM),如 GPT.T5 和 BERT,已经在各种自然语言处理 (NLP) 任务中取得了最先进的结果.此外,还开始涉足其他领域,例如计算机 ...

  8. ThreadLocal最终版本

    ThreadLocal工作原理 目录 ThreadLocal工作原理 一.官方文档描述 二.为什么使用ThreadLocal 2.1.案例 三.ThreadLocal和syncronized关键字区别 ...

  9. RT-Thread Studio使用——创建工程并配置外部时钟(转)

    硬件:正点原子阿波罗F429开发板,主控STM32F429IGT6,晶振25MHz. 软件:RT-Thread Studio RT-Thread版本:4.1.0 1.创建工程 根据所使用的硬件信息,配 ...

  10. openssh 升级

    1.基础安装包准备  PS:最好先下载 telnet 服务端并启动,以免 sshd 服务启动失败后无法登录 官方网站下载最新版*.tar.gz安装包: 官方下载地址:http://ftp.openbs ...