2011-08-09 24 views
0

我正在使用Qt-Embedded 4.7.3並試圖在小部件中顯示中文字符。 我已經構建了一個x86版本的Qt-embedded,以便我可以使用qvfb來測試我的應用程序。但由於某種未知的原因,我無法展示中文。這是一個測試程序,我使用:我已經下的lib /字體設置「WenQuanYiMicroHeiLight.ttf」中國字體無法在Qt-Embedded中顯示中文字符4.7.3

#include <QApplication> 
#include <QLabel> 
#include <QTextCodec> 

int main(int argc, char *argv[]) 
{ 
    QApplication app(argc, argv); 
    QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8")); 
    QTextCodec::setCodecForLocale(QTextCodec::codecForName("UTF-8")); 

    QLabel* label = new QLabel("Chinese中文"); 
    label->show(); 

    return app.exec(); 
} 

。中文字符以UTF-8編碼,所以根據Qt Documment,這應該允許我在小部件中顯示中文。但是當我在QVFB中運行應用程序時,它沒有顯示中文。

任何想法?

編輯: 後來我發現它實際上是由系統引起的(雖然不是很確定)。我轉而使用Debian,中國人再次出現。這可能與我的舊系統(ArchLinux,但是持有gnome2軟件包...)上的軟件包依賴性問題有關......

感謝您的回答。

回答

2

我不知道問題是什麼,但通常最好不要在代碼文件中包含任何非ASCII字符,而是將代碼完全用英文編寫,並使用Qt的國際化概念(tr,QTranslator,linguist)翻譯桂。

0

你不需要translate字符串嗎?這是another good article

嘗試QLabel* label = new QLabel(tr("Chinese中文"));也許。至少這是一個開始。

+0

是的,但它不工作太... – Aitjcize

+0

'tr()'只是標記翻譯的字符串;本身它不會做任何事情。 – koan