问题描述
在用QT5编译程序的时候,出现程序动态设置的文字是乱码的,UI固定设置的文字是正常显示的.
这种情况,一般是编码设置有问题.
环境描述
QT版本:QT5.9.9 编译环境:VS2017
解决方案
设置代码为UTF-8模式 在打开Qt5工程的情况下,依次点击工具->选项->文本编辑器->行为,找到文件编码,更改默认编码为 “UTF-8”,UTF-8 BOM更改为"如果编码是UTF-8则添加"
添加代码
在类的头文件中添加入如下代码:
#if _MSC_VER >= 1600
#pragma execution_character_set("utf-8")
#endif
运行效果:
![](https://raw.githubusercontent.com/guoqiangx/blog-images/master/img/20220325113403.png)
# 完整代码
```C++
#ifndef DIALOG_H
#define DIALOG_H
//在VS编译环境,防止中文乱码
#if _MSC_VER >= 1600
#pragma execution_character_set("utf-8")
#endif
#include <QDialog>
#include <QSerialPort>
#include <QSerialPortInfo>
namespace Ui {
class Dialog;
}
class Dialog : public QDialog
{
Q_OBJECT
public:
explicit Dialog(QWidget *parent = 0);
~Dialog();
private slots:
void on_btn_uart_Ctrl_clicked();
void on_btn_led1_Ctrl_clicked();
void on_btn_led2_Ctrl_clicked();
void on_btn_clear_clicked();
void on_cbb_baud_currentIndexChanged(const QString &arg1);
void on_btn_serch_clicked();
void serialPort_readyRead(); //connect连接方式,串口接收的数据进行处理
void on_btn_send_clicked();
private:
Ui::Dialog *ui;
QSerialPort serial;
};
#endif // DIALOG_H