我在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()`的问题,有人可以解释一下吗?