我有以下 main.cpp
文件,
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QTextCodec::setCodecForCString(QTextCodec::codecForName("UTF-8"));
MainWindow w;
w.show();
return a.exec();
}
以下是mainwindow.cpp
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
result = new QLabel("Check Result Here:",this);
result->setGeometry(QRect(QPoint(180,30),QSize(161,161)));
QString m("宁愿看见两个恶魔在拔河,也不愿看见一只天使在跳舞。");
result->setText(m);
}
MainWindow::~MainWindow()
{
delete ui;
}
上的汉字QLabel
不能正常显示。
如果我将它们修改为以下,字符可以正常显示。
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
w.show();
return a.exec();
}
以下是mainwindow.cpp
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
QTextCodec::setCodecForCString(QTextCodec::codecForName("UTF-8"));
result = new QLabel("Check Result Here:",this);
result->setGeometry(QRect(QPoint(180,30),QSize(161,161)));
QString m("宁愿看见两个恶魔在拔河,也不愿看见一只天使在跳舞。");
result->setText(m);
}
MainWindow::~MainWindow()
{
delete ui;
}
我认为这是函数“setCodeForCString()”范围的问题,有人可以解释一下吗?