MSVC编译器中文错误error: C2001: 常量中有换行符error: C2146: 语法错误: 缺少“)”(在标识符“timesLayout”的前面)

使用MSVC编译器编译QT项目时,遇到中文出现如下错误:

H:\ColorBall_Qt\mainwindow.cpp:62: error: C2001: 常量中有换行符
H:\ColorBall_Qt\mainwindow.cpp:63: error: C2146: 语法错误: 缺少“)”(在标识符“timesLayout”的前面)

是因为中文乱码问题。

解决办法:

在.pro中增加配置:

msvc {
    QMAKE_CXXFLAGS += /utf-8      # 强制使用UTF-8编码编译
    CODECFORSRC = UTF-8           # 指定源码编码为UTF-8
}

void BarVUMeter::drawBorder(QPainter *painter) { painter(this); painter->save(); QColor light = Qt::white; QColor dark = colorBg.darker(140); painter->setPen(QPen(colorBg, 3, Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin)); QLinearGradient linGrad(5, 250, 10, 250); linGrad.setColorAt(0, light); linGrad.setColorAt(1, colorBg); linGrad.setSpread(QGradient::PadSpread); painter->setBrush(linGrad); QRectF border(5, 5, 90, 530); painter->drawRoundedRect(border, 5, 5); QLinearGradient linGrad1(85, 250, 95, 250); linGrad1.setColorAt(0, colorBg); linGrad1.setColorAt(1, dark); linGrad1.setSpread(QGradient::PadSpread); painter->setBrush(linGrad1); QRectF border1(20, 5, 75, 530); painter->drawRoundedRect(border1, 5, 5); //绘制左右文字 painter->setPen(QPen(colorValue, 2)); QRectF Left(20, 505, 25, 20); QRectF Right(55, 505, 25, 20); painter->drawText(Left,QString::fromUtf8("左"), Qt::AlignCenter); painter->drawText(Right, u8"右", Qt::AlignCenter); painter->restore(); } ..\BarVumeter\barvumeter.cpp(1): warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失 F:\QtCode\BarVumeter\barvumeter.h(1): warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失 ..\BarVumeter\barvumeter.cpp(48): error C2064: 项不会计算为接受 1 个参数的函数 ..\BarVumeter\barvumeter.cpp(75): error C2001: 常量中有换行符 ..\BarVumeter\barvumeter.cpp(76): error C2146: 语法错误: 缺少)”(在标识符“painter”的前面) ..\BarVumeter\barvumeter.cpp(76): error C2146: 语法错误: 缺少“;”(在标识符“painter”的前面) ..\BarVumeter\barvumeter.cpp(76): error C2001: 常量中有换行符 ..\BarVumeter\barvumeter.cpp(78): error C2146: 语法错误: 缺少)”(在标识符“painter”的前面) ..\BarVumeter\barvumeter.cpp(78): error C2146: 语法错误: 缺少“;”(在标识符“painter”的前面)
最新发布
06-07
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值