作者allssddaa (屌炸天)
看板C_and_CPP
标题[问题] Qt编译问题
时间Mon Jul 3 10:57:11 2017
开发平台(Platform): (Ex: Win10, Linux, ...)
Qt5.6.2
编译器(Ex: GCC, clang, VC++...)+目标环境(跟开发平台不同的话需列出)
VS 2015
额外使用到的函数库(Library Used): (Ex: OpenGL, ...)
问题(Question):
按照网站的教学做一个push buttom
在mainwindow.pp里增加一行setText
然後编译就出问题
喂入的资料(Input):
#include "mainwindow.h"
#include "ui_mainwindow.h"
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
ui->pushButton->setText("新窗口");
}
MainWindow::~MainWindow()
{
delete ui;
}
预期的正确结果(Expected Output):
打开来视窗中间一个按钮
然後中文是乱码
错误结果(Wrong Output):
D:\QT\nWindows\nWindows\mainwindow.cpp:-1: warning: C4819: 档案含有无法在目前
字码页 (950) 中表示的字元。请以 Unicode 格式储存档案以防止资料遗失
D:\QT\nWindows\nWindows\mainwindow.cpp:9: error: C2001: 常数中包含新行字元
D:\QT\nWindows\nWindows\mainwindow.cpp:10: error: C2059: 语法错误: '}'
程式码(Code):(请善用置底文网页, 记得排版)
补充说明(Supplement):
教学的Qt版本是4.8.1
是因为版本的问题吗?
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 60.249.92.60
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_and_CPP/M.1499050634.A.FDC.html
1F:→ MOONY135: 在.H加这行 #pragma execution_character_set("utf-8") 07/03 12:23
2F:→ MOONY135: 中文会乱码 07/03 12:23
3F:→ allssddaa: 还没加这行 我现在只有setText就不能编译了 07/04 09:27
4F:推 longlongint: 先不要打中文试试看 然後把中文换成许功盖 看会 07/04 10:06
5F:→ longlongint: 不会跳一样的错误 07/04 10:06
谢谢
setText里面改成英文就没有问题了
但是接下来下一个问题是
在.H里面加#pragma execution_character_set("utf-8")
或是看别的网站教的在main里面加
QTextCodec::setCodecForLocale(QTextCodec::codecForName("UTF-8"));
都没有办法解决中文的问题
只要有中文就编译不过
※ 编辑: allssddaa (60.249.92.60), 07/04/2017 11:58:56
6F:推 Davinais: 你原始码编码也存错了吧,要存成utf-8才对 07/04 12:52
7F:→ uranusjr: 编译不过应该是原始码编码错误, 上面提的都是成功执行但 07/05 00:54
8F:→ uranusjr: 中文乱码的解法 07/05 00:55
9F:→ allssddaa: 不懂意思? 我存的不是UTF-8吗 不然我存成什麽 07/05 09:41
10F:→ allssddaa: 所谓的存原始码编码是指哪个动作? 07/05 09:43
11F:→ allssddaa: 要怎麽存成正确的原始码编码呢? 07/05 13:59
13F:→ allssddaa: 我应该已经是UTF-8了? 07/05 14:30
14F:→ uranusjr: 啊我知道是怎麽回事了, 对你的档案是 UTF8 没错但 cl 吃 07/05 15:39
15F:→ uranusjr: 不了, 因为预设的编译模式是 UTF-16 (印象中) 07/05 15:40
16F:→ uranusjr: 在 .pro 档加上 QMAKE_CXXFLAGS += /utf-8 不知道能不能 07/05 15:41
17F:→ uranusjr: 解, 手边没 Windows 无法试 07/05 15:41
喔喔喔解决了耶
非常感谢
在.pro加那段就可以编译而且没有乱码
请问"CL吃不了因为预设是UTF-16"是什麽意思呢?
加上那一行又是做了什麽改变呢?
※ 编辑: allssddaa (60.249.92.60), 07/05/2017 16:31:04