當前位置:首頁 » 編程軟體 » 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

熱點內容
linux上網代理 發布:2025-03-17 12:23:56 瀏覽:356
c是高級語言嗎 發布:2025-03-17 12:16:31 瀏覽:521
python泛型 發布:2025-03-17 12:15:01 瀏覽:480
編程貓被盜 發布:2025-03-17 12:02:18 瀏覽:130
海關鎖密碼箱如何設置新密碼 發布:2025-03-17 11:53:50 瀏覽:559
農業卡號的密碼在哪裡改 發布:2025-03-17 11:48:57 瀏覽:965
楊瀾超級訪問 發布:2025-03-17 11:47:17 瀏覽:237
資料庫無損連接 發布:2025-03-17 11:47:16 瀏覽:13
memcachephp類 發布:2025-03-17 11:40:04 瀏覽:829
哈夫曼編碼演算法實現 發布:2025-03-17 11:23:31 瀏覽:385