原文出處:
本來想自己總結下,結果發現有人寫的更好,其中的方法一就是我經常使用的:
1.把平時要用的文字寫成乙個list,中文和英文分開,qstring strcnstring、qstring strenstring;(你有多少個語言就寫多少個list)
2.寫乙個程式,傳參為語言id和文字id
3.按照語言id查詢中文或者英文的list,使用文字id查詢對應的文字。這樣可以代替qt自帶的translator
(如果你的文字過多,建議把文字做成xml儲存)
qt中的中文顯示,經常會出現亂碼。從網上看了一些部落格,大都是qt4中的解決方法,
網上搜到的都是這種:
#include
< qtextcodec >
intmain
(int argc,
char
**ar**)
qt5中, 取消了qtextcodec::setcodecfortr()和qtextcodec::setcodecforcstring()這兩個函式,而且網上很多都是不推薦這種寫法。
**:
#include
"helloqt.h"
#include
#include
intmain
(int argc,
char
*ar**)
結果:
有三種轉換的方法:
1.加上#include
qtextcodec *codec = qtextcodec::codecforname(「gbk」);//修改這兩行
w.setwindowtitle(codec->tounicode(「學生事務管理系統」));
**改為:
#include
"helloqt.h"
#include
#include
#include
intmain
(int argc,
char
*ar**)
2.w.setwindowtitle(qstring::fromlocal8bit(「學生事務管理系統」));
**改為:
#include
"helloqt.h"
#include
#include
intmain
(int argc,
char
*ar**)
3.w.setwindowtitle(qstringliteral(「學生事務管理系統」));
**改為:
#include
"helloqt.h"
#include
#include
intmain
(int argc,
char
*ar**)
結果: qt 中文亂碼 Qt中文亂碼問題
接觸了qt,由於習慣中vs,如果使用vs寫qt 剛接觸很快就發現有中文亂碼問題,我的解決方法如下 新建乙個標頭檔案,比如qtchcharset.h,標頭檔案中內容如下 pragma once ifdef q os win q os win 新增後支援gb2312,utf 8 bom,unicode ...
亂碼問題 Qt中文亂碼問題
接觸了qt,由於習慣中vs,如果使用vs寫qt 剛接觸很快就發現有中文亂碼問題,我的解決方法如下 新建乙個標頭檔案,比如qtchcharset.h,標頭檔案中內容如下 pragma once ifdef q os win q os win 新增後支援gb2312,utf 8 bom,unicode ...
QT 中文亂碼問題
1,將設定改為 如果是utf 8編碼,則新增 2,cpp檔案開始新增 pragma execution character set utf 8 根據 qt 的文件 中規定 qstring 的 const char 建構函式是呼叫 fromutf8 構造的。所以要求字串字面量是 utf 8 編碼的位元...