0

私は 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()」のスコープの問題だと思いますが、誰か説明してもらえますか?

4

0 に答える 0