QT中文乱码问题

ui->pushButton->setText(QString::fromLocal8Bit("我是中文"));

之前解决乱码问题都是用的QString::fromLocal8Bit

然而有一次用这个方法设置按钮点击文字变换时候,发现第一次点正常,后面点击就是乱码,找了下,终于get一个一劳永逸的解决方案:

将默认字体设置为UTF8,再配合tr("我是中文")就不会乱码啦:

1、设置字体:

         在工具->选项 ->文本编辑器-> 行为

         把默认编码改为 UTF-8.

QT中文乱码问题_第1张图片

2、输出中文:

ui->pushButton->setText("您好");

 

注意:改为UTF8之前已经生成的项目还会是乱码,需要新建项目,然后把代码复制进去,然后就怎么点都不会乱码了。

 

QT中文乱码问题_第2张图片QT中文乱码问题_第3张图片QT中文乱码问题_第4张图片

 

--------------------------下面的是之前写的,不算是很好的解决方案----------------------------------------------

今日搞了点带源代码的QT教程学了学,一打开全是乱码,部分解决如下:

1.遇到Dialog.pro的,把里面的需要的代码复制到新建的MainWindow下面就行了,或者在源代码.h文件中加入#include

2.遇到ui界面一堆乱码的,必然是把名字设定写到了.cpp里,改改代码

ui->pushButton->setText("我是中文");
改为:ui->pushButton->setText(QString::fromLocal8Bit("我是中文"));

 

甚至还可以这么定义:

int index;
this->setWindowTitle(QString::fromLocal8Bit("未命名文档[")+QString::number(index)+"]");
//QString::number一定要有,不然数字无法显示

详见https://blog.csdn.net/qq_25800311/article/details/79451101

你可能感兴趣的:(QT教程案例)