Qt 中文亂亂問題

討厭在程序中用tr()進行中文轉換,我寫的程序也沒打算給老外用,因此希望程序中直接使用中文字符串,討厭任何形式的轉換操作。好在開發環境中運行程序顯示中文沒有問題,可部署到新機器上中文卻是亂碼,搜索了很多帖子,給出的答案都不盡詳實(或許我沒看到,抱歉),不是缺少必要的語句就是順序有誤。於是自己根據這些帖子的提示(還是要十分感謝這些帖子),試驗了很多次,終於找到了終極方案,現與大家分享:

    1. 在主程序main開始處增加以下語句,注意要按順序書寫:
 QApplication::addLibraryPath("./plugins");
 QTextCodec::setCodecForLocale(QTextCodec::codecForName("GB2312"));
 QTextCodec::setCodecForTr(QTextCodec::codecForName("GB2312"));
 QTextCodec::setCodecForCStrings(QTextCodec::codecForName("GB2312"));
    2.程序其他地方,包括其他文件、類文件中,直接使用中文:
QString str = "我是中文";
lbl1.setText(str);
lbl2.setText("你好,中文!");
    3.在部署目錄(執行程序放置的目錄)中建立子目錄 plugins,之後在此目錄中建立codecs子目錄,將qcncodecs4.dll複製到此子目錄中,形成如下目錄結構:
<app-install-dir>\plugins\codecs

    4.大功告成!試試你的程序吧,漂亮的中文出現了!

    其實plugins中還可以放置程序中使用的其他插件,如sql和圖像處理插件(到qt安裝目錄下的qt\plugins下按目錄結構複製你所需要文件的即可)。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章