1. 前言
在編寫Qt應用程式時,有時會希望能直接設定中文字元串到界面,總結下其設定方法。
2. 設定中文
1)運作環境Qt5.5 VS2013
2)首先,檢視需要設定中文的檔案是否為UTF-8格式,是的話可直接設定中文
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIyZuBnL4kzM2EzMzYzNx0CO0cjMzADMwEjNxUDMxIDMy0iNwkTO4MjMvwVNwEjMwIzLcZDM5kDOzIzLcd2bsJ2Lc12bj5ycn9Gbi52YuAjMwIzZtl2Lc9CX6MHc0RHaiojIsJye.png)
3)如果檔案非UTF-8格式,可在檔案中增加如下指令,按UTF-8格式解析檔案
#pragma execution_character_set("utf-8")
注:每個有設定中文字元串的檔案中都需要增加
4)運作效果如下
3. 注意事項
如果為Qt4及以下版本,需要在main函數中設定采用的編碼格式,才能顯示中文,設定方法如下
1 #pragma execution_character_set("utf-8")
2
3 #include "Widget.h"
4 #include <QApplication>
5 #include <QTextCodec>
6
7 int main(int argc, char *argv[])
8 {
9 QApplication a(argc, argv);
10 a.setFont(QFont("Microsoft Yahei", 9));
11
12 #if (QT_VERSION <= QT_VERSION_CHECK(5,0,0))
13 #if _MSC_VER
14 QTextCodec *codec = QTextCodec::codecForName("gbk");
15 #else
16 QTextCodec *codec = QTextCodec::codecForName("utf-8");
17 #endif
18 QTextCodec::setCodecForLocale(codec);
19 QTextCodec::setCodecForCStrings(codec);
20 QTextCodec::setCodecForTr(codec);
21 #else
22 QTextCodec *codec = QTextCodec::codecForName("utf-8");
23 QTextCodec::setCodecForLocale(codec);
24 #endif
25
26 frmSwitchButton w;
27 w.setWindowTitle("設定中文");
28 w.show();
29
30 return a.exec();
31 }
設定中文