標籤:
來源:http://blog.sina.com.cn/s/blog_a6fb6cc90101art3.html
在編寫Qt程式的時候,總會碰到中文問題,一直都很困惑,原本在使用QLineEdit的時候總會出現右鍵英文的情況,開始的時候是將右鍵功能屏蔽掉。使用setContextMenuPolicy(Qt::NoContextMenu)來設定無右鍵菜單,但是後來發現這雖然省事,但是有不足之處,密碼框可以沒有右鍵菜單、不可複製、粘貼,但是普通的文字框還是得需要此項功能的,所以就摸索著如何?,做起來也很是簡單!
1、從Qt安裝目錄下面將檔案“D:\SoftWare\QtOpenSource\translations\qt_zh_CN.qm”複製一份到你的項目目錄下。
2、建立資源檔(QRC.qrc)
位置為工程目錄下:
內容:
qt_zh_CN.qm
3、在主函數main.cpp中載入相應的資源檔。
1 #include #include "main_widget.h" 2 3 int main(int argc, char *argv[]) 4 { 5 //建立QApplication對象,管理整個應用程式的資源,通過argc和argv來擷取它自己的命令列參數; 6 QApplication app(argc, argv); 7 8 //設定編碼,一般在Window開發環境裡,是GBK編碼,在Linux開發環境裡,是utf-8編碼 9 //擷取系統編碼,否則移植會出現亂碼 10 QTextCodec *codec = QTextCodec::codecForName("System");11 12 //設定和對本地檔案系統讀寫時候的預設編碼格式 13 QTextCodec::setCodecForLocale(codec);14 15 //設定傳給tr函數時的預設字串編碼 16 QTextCodec::setCodecForTr(codec);17 18 //用在字元常量或者QByteArray構造QString對象時使用的一種編碼方式 19 QTextCodec::setCodecForCStrings(codec);
20 //載入Qt中的資源檔,使Qt顯示中文(包括QMessageBox、文字框右鍵菜單等)
QTranslator translator; 21 translator.load(":/qm/qt_zh_CN"); 22 app.installTranslator(&translator);23 24 MainWidget main_widget; 25 main_widget.show();26 27 return app.exec(); 28 }
註:技術在於交流、溝通,轉載請註明出處並保持作品的完整性。╰☆奮鬥ing?孩子` 原文:http://blog.sina.com.cn/s/blog_a6fb6cc90101art3.html。
Qt之中文顯示(QMessageBox、QLineEdit右鍵菜單等)