C++ Qt5标签更改文本显示损坏

C++ Qt5标签更改文本显示损坏,c++,qt,qt5,visual-studio-2019,C++,Qt,Qt5,Visual Studio 2019,应用程序在Qt Creator中运行良好,但在Visual Studio中不起作用 在VisualStudio中,我尝试学习C++ QT5 GUI应用程序。以下是基本应用程序: 单击按钮并更改标签文本 main.cpp #include "Deneme.h" #include "stdafx.h" #include <QtWidgets/QApplication> #include <QTextCodec> int main(in

应用程序在Qt Creator中运行良好,但在Visual Studio中不起作用

在VisualStudio中,我尝试学习C++ QT5 GUI应用程序。以下是基本应用程序:

单击按钮并更改标签文本

main.cpp

#include "Deneme.h"
#include "stdafx.h"
#include <QtWidgets/QApplication>
#include <QTextCodec>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    QTextCodec::setCodecForLocale(QTextCodec::codecForName("ISO 8859-9"));
    Deneme w;
    w.show();
    return a.exec();
}
标签文本在开头是可以的。单击按钮后,出现编解码器问题

我尝试了QTextCodec,但没有成功:

QTextCodec::setCodecForLocale(QTextCodec::codecForName("ISO 8859-9"));
使用:

  • Qt5.15
  • 视窗10
  • Visual Studio 2019
  • MSVC 2019
  • 克马克

它能用,谢谢。我应该每次在每个标签上使用QStringLiteral吗?它有什么作用?不客气。我认为应该在字符串不是utf-8的地方使用QStringLiteral。它将从常量字符串中新建一个QString对象。
QStringLiteral
只是从编译时常量字符数组创建
QString
的优化。重要的是编解码器UTF-8。源文件可能存储在UTF-8中,因此必须解释为UTF-8。
#include "Deneme.h"
#include "stdafx.h"

Deneme::Deneme(QWidget *parent)
    : QMainWindow(parent)
{
    ui.setupUi(this);
    connect(ui.pushButton, SIGNAL(clicked()), this, SLOT(changeText()));
}

void Deneme::changeText() {
    ui.label->setText("Metin Değiştirildi!");
}
QTextCodec::setCodecForLocale(QTextCodec::codecForName("ISO 8859-9"));
QTextCodec::setCodecForLocale( QTextCodec::codecForName( "UTF-8" ) );
ui.label->setText(QStringLiteral("Metin Değiştirildi!"));