開發環境:
開發板:Qt4.8.0+linux2.6.30
一、要在Qt的應用程序中顯示漢字,需有2個條件需滿足:
1.漢字庫文件,如“宋體”simsun.ttc,如果Qt找不到漢字庫,或者要顯示的漢字不再Qt能找到的漢字庫中,則,顯示的是空白,即不顯示任何東西;
可以用WindowsXp下的字庫文件,在windows/fonts目錄下,直接拷貝到Qt的lib/fonts目錄下;
2.顯示漢字的編碼要告訴Qt
如果使用tr轉換顯示的漢字,則在類的構建函數中添加
ui.setupUi(this);
QTextCodec::setCodecForTr(QTextCodec::codecForName("utf8"));//tr使用的編碼
QTextCodec::setCodecForCStrings(QTextCodec::codecForName("utf8"));//QString使用的編碼,沒有這一條
//則QString str(tr(“中文”)),能正常顯示,QString str(“中文”);會顯示亂碼,
另外要特別注意的是這兩條語句放置的位置,在構造函數中,只對當前類有效,放到main函數中,無效
這樣,在該類的後面使用tr轉換的字符串,就會認爲是utf8編碼的了,
二、在程序中顯示漢字
1.在顯示漢字的字符串,需用tr這個宏進行轉換,如:
QLabel state;
state.setText(tr("你好"));
2.