问题描述
在用QT5编译程序的时候,出现程序动态设置的文字是乱码的,UI固定设置的文字是正常显示的.
这种情况,一般是编码设置有问题.
环境描述
解决方案
设置代码为UTF-8模式
在打开Qt5工程的情况下,依次点击工具->选项->文本编辑器->行为,找到文件编码,更改默认编码为 “UTF-8”,UTF-8 BOM更改为"如果编码是UTF-8则添加"
添加代码
在类的头文件中添加入如下代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
|
#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
|