setCodecfForTr()的有效范围是什么

时间:2013-08-15 20:25:35

标签: c++ qt scope

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

0 个答案:

没有答案