Qt5 标签更改文本显示已损坏
Qt5 Label Changed Text Shows Corrupted
应用程序在 Qt Creator 中运行良好,但在 Visual Studio.
中运行不佳
我尝试在 Visual Studio 中学习 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();
}
头文件:
#pragma once
#include <QtWidgets/QMainWindow>
#include "ui_Deneme.h"
class Deneme : public QMainWindow
{
Q_OBJECT
public:
Deneme(QWidget *parent = Q_NULLPTR);
private:
Ui::DenemeClass ui;
private slots:
void changeText();
};
cpp 文件:
#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 但没有成功:
QTextCodec::setCodecForLocale(QTextCodec::codecForName("ISO 8859-9"));
使用:
- Qt5.15
- Windows 10
- Visual Studio 2019
- MSVC 2019
- CMake
QTextCodec::setCodecForLocale( QTextCodec::codecForName( "UTF-8" ) );
ui.label->setText(QStringLiteral("Metin Değiştirildi!"));
应用程序在 Qt Creator 中运行良好,但在 Visual Studio.
中运行不佳我尝试在 Visual Studio 中学习 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();
}
头文件:
#pragma once
#include <QtWidgets/QMainWindow>
#include "ui_Deneme.h"
class Deneme : public QMainWindow
{
Q_OBJECT
public:
Deneme(QWidget *parent = Q_NULLPTR);
private:
Ui::DenemeClass ui;
private slots:
void changeText();
};
cpp 文件:
#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 但没有成功:
QTextCodec::setCodecForLocale(QTextCodec::codecForName("ISO 8859-9"));
使用:
- Qt5.15
- Windows 10
- Visual Studio 2019
- MSVC 2019
- CMake
QTextCodec::setCodecForLocale( QTextCodec::codecForName( "UTF-8" ) );
ui.label->setText(QStringLiteral("Metin Değiştirildi!"));