qt creator 常量中有换行符(转)
这篇文章写于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。。。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 【杂谈】分布式事务——高大上的无用知识?