|
按论坛里教程建立了一个试验项目:
http://www.qter.org/forum.php?mo ... &extra=page%3D1
由于我是在windows下用的5.1.1
- 将tools->option->text editor->Behavior->File Encodings中设置为UTF8和Always Delete。
- 在main.cpp中QApplication a(argc, argv);后面添加了代码QTextCodec::setCodecForLocale(QTextCodec::codecForName("UTF-8"));
然后奇怪的问题就出现了,在mainwindow.cpp中,代码:ui->pushButton->setText("新窗口");就会运行出错,错误信息为:
warning: C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失
error: C2001: 常量中有换行符
error: C2143: 语法错误 : 缺少“)”(在“}”的前面)
error: C2143: 语法错误 : 缺少“;”(在“}”的前面)
如果将这段代码改为:
ui->pushButton->setText("new新window");
或
ui->pushButton->setText("窗口");
或
ui->pushButton->setText("汉字");
都运行正常,汉字在窗口上的显示也没有问题。真是百思不得其解,希望有人能解答。
附:mainwindow.cpp代码如下:- #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;
- }
复制代码 |
|