當前位置:首頁 » 編程軟體 » QT預編譯設置編碼格式

QT預編譯設置編碼格式

發布時間: 2023-08-19 01:33:11

A. QT控制台程序怎麼輸出中文字元

跟Qt關系不大,這和你源文件編碼格式和編譯器有關系。

可以給你個建議把上面的程序改成Qt版本的, 哈哈。步驟如下~
1 是用qtcreator
2 如果是, 檢查
工具--選項--文本編輯器--行為 選項卡下的File Encodings 中,default Encoding下拉選框里沒有中文編碼(gbk、gb2132或gb18030等)。我這里是system

3 在程序里
int main(xxxx)
{
QApplication app(xxxx);
QTextCodec::setCodecForTr(QTextCodec::codecForName("system"));
QTextCodec::setCodecForLocale(QTextCodec::codecForName("system"));
QTextCodec::setCodecForCStrings(QTextCodec::codecForName("system"));

qDebug() << QObject::tr("中文");
//記得中文用QObject::tr()包裹起來,這樣就可以顯示中文了。

app.exec();
}

B. qt4.6移植到qt4.7出現中文亂碼

網上搜索了3~4天,概括如下:

1、使用setDefaultCodec進行設置;

qApp->setDefaultCodec( QTextCodec::codecForName("GBK") );

QLabel *label = new QLabel( tr("中文標簽") );

可惜setDefaultCodec是QT3的函數,QT4已經不支持了。

2、 設置QObject的成員函數tr()的編碼;

QTextCodec::setCodecForTr(QTextCodec::codecForName("GBK"));

3、使用QString的fromLocal8Bit()函數;

QString str;

str = str.fromLocal8Bit("哈哈哈");

hello.setWindowTitle(str);

4、用QTextCodec的toUnicode方法來顯示中文

QLabel hello(QObject::tr("你好").toLocal8Bit());

QTextCodec *codec = QTextCodec::codecForLocale();

QString a = codec->toUnicode("安師大手動");

以上各種都沒有解決問題。

繼續沒有搜索這個問題,終於在一個blog中發現了真正的答案:字型檔問題。

「QT4下發現一個很奇怪的現象,就是對話框的Title「我是對話框」可以正確顯示,而按鈕就是小方塊。總感覺是系統某些設置不對,而不是字元編碼的問題,如果是字元編碼問題,那麼應該是亂碼而不是小方塊。忽然想到網上有提到過是字型檔的問題,覺得現象可以解釋,標題欄和按鈕文字不是同一種字體,而恰好按鈕字體沒有,所以是小方塊,而不是亂碼。

網上搜了下QT4用的默認字體,沒有查到,又看了QT4的源代碼,代碼太多,也沒有找到。

不過setFont函數引起了我的注意,在網上看到過這種方法。」

參考上面的內容,修改代碼:

...

QTextCodec::setCodecForTr(QTextCodec::codecForName("gb18030"));

QFont font("Times",12,QFont::Normal,FALSE);

app.setFont(font);

...

label.setText(QObject::tr("同一個世界,同一個夢想!"));

...

成功!顯示中文正常!

這個問題的解決真是太重要了,說實話真的有點疲憊,幸好沒有放棄。yeah!

後記:使用qt的designer時,發現界面還是亂碼。使用qtconfig設置font為Bitstream Charter後解決亂碼問題。此時,我想原來的程序是不是也OK?不料一試,果然沒有亂碼~Oh MyGod!

Come From:http://www.linuxdiyf.com/viewarticle.php?id=97025
另外的解決方案:

本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/mociml/archive/2010/04/26/5531643.aspx

熱點內容
java如何編譯源文件 發布:2025-02-04 10:54:15 瀏覽:696
硬碟存儲伺服器怎麼連接 發布:2025-02-04 10:00:55 瀏覽:27
javaip埠 發布:2025-02-04 09:27:09 瀏覽:857
國產存儲科技進步二等獎 發布:2025-02-04 09:13:00 瀏覽:693
編程課v 發布:2025-02-04 08:45:00 瀏覽:109
模擬器能有手機腳本么 發布:2025-02-04 08:39:50 瀏覽:762
android顯示html圖片 發布:2025-02-04 08:35:31 瀏覽:795
如何查學信網賬號及密碼 發布:2025-02-04 08:33:55 瀏覽:506
linux32位jdk 發布:2025-02-04 08:33:55 瀏覽:250
康佳伺服器連接失敗是怎麼回事 發布:2025-02-04 08:18:51 瀏覽:919