之前在网上看到针对代码中包含中文的时候报错error: C2001: 常量中有换行符 的解决办法是在结尾处加空格就可以,这样确实解决了编译报错,但是实际上显示出来的是乱码
一般遇到此类问题大都是采用msvc编译的。
解决此类问题方法:
在pro文件中添加如下:
msvc {
QMAKE_CFLAGS += /utf-8
QMAKE_CXXFLAGS += /utf-8
}
最后说一下:有在网上看到好多人在给控件赋值中文文本的时候采用了QObject::tr()的方式,强烈建议,如果不需要翻译的话,不要用QObject::tr()!,不要用QObject::tr()!,不要用QObject::tr()!.
tr的本意是包含英文,然后翻译到其他语言比如中文。tr需要开销的,Qt默认会认为他需要翻译,会额外进行特殊处理。