c++ - Qt5 标签更改文本显示损坏
问题描述
应用程序在 Qt Creator 中运行良好,但在 Visual Studio 中运行良好。
我尝试在 Visual Studio 中学习 C++ Qt5 GUI 应用程序。这是基本应用程序:
单击按钮并更改标签文本。
主文件
#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
- 视窗 10
- 视觉工作室 2019
- MSVC 2019
- 制作
解决方案
QTextCodec::setCodecForLocale( QTextCodec::codecForName( "UTF-8" ) );
ui.label->setText(QStringLiteral("Metin Değiştirildi!"));
推荐阅读
- flutter - Provider 不使用 Flutter 中的 Provider 包通知监听器
- python - 如何从 list1 获取 str 成为基于 List2 值的变量?
- ruby-on-rails - Ruby on Rails - ActiveRecord 的枚举与布尔值
- javascript - 如何将三元运算符应用于此代码
- azure - 在 MAC 上使用 Azure AD 的 Azure VNet 点到站点 VPN 和 OpenVPN
- go - go module @latest 找到但不包含包
- wordpress - 我们可以在 Wordpress 安装中延迟加载 MU 插件吗
- python - 如何计算 avgLoad 函数,关闭连接并确保可用性函数
- ocaml - ocamlbuild 找不到文件 graphics.cma
- python - Python 和 SQlite 删除具有多个参数的行