Qt5的新變化

2021-08-03 12:22:04 字數 1247 閱讀 4445

原:

qtextcodec::setcodecfortr(...)

qtextcodec::setcodecforcstrings(...)

qtextcodec::setcodecforlocale(...)

儘管之前零零散散寫過一點這方面的內容,比如

但是,敢死隊員還是一批一批的 … 讓人少多有些無奈

在國內,之所以用很多人用這3行**,是因為他們在源**的const char*這種窄字串中使用了中文。

然後,發現。不對啊,咋全是亂碼呢?於是上網搜尋,發現其他人用的這3行**

於是,加上試試。發現:在自己的當前環境下(固定系統、固定地區語言設定、固定編譯環境)還真的沒有亂碼了。

於是乎?完全不考慮那3行**的作用了,反正自己能用就行了,管它什麼***呢!!

在qt5中,這個問題終於不復存在了,因為

這兩個函式

qtextcodec::setcodecfortr(...)

qtextcodec::setcodecforcstrings(...)

被直接去掉了。

這樣一來,受影響的直接是如下**了:

qstring s1 = "我是中文";

qstring s2("我是中文");

qstring s3 = qobject::tr("我是中文")

現在qt5中儘管去掉了setcodec***這兩個函式,但是預設編碼還是latin1。如果你要想使用

"我是中文"

這樣的字串,必須自己使用qtextcodec或這qstring::from*** 這種東西進行轉換

qt5發布之時,預設將會是utf8編碼,完全可以將你從qt編碼問題解放出來。

下面的**

qstring s1 = "我是中文";

qstring s2("我是中文");

qstring s3 = qobject::tr("我是中文")

將不會工作。

如果你在windows下,且使用的是mingw,那麼只要你將原始碼檔案儲存成utf8,前面的**將直接可以工作(無須其他設定)

如果你在其他平台了,那麼應該都預設是utf8檔案。同樣無須進行設定。

如果你的編譯器支援c++11,那麼,你可以直接使用

qstring s = u8"我是中文";

主流編譯器還都不怎麼支援c++11

Qt5發生的變化 Qt5程式設計入門筆記

2 qt5移除了qt opengl模組,將opengl相關的類移動到了qt gui模組中,意味著opengl成為了每個應用程式的必選項。3 qt5吧全部的qt介面遷移到qt平台抽象層 qt platform abstraciton qpa 智商,使得qt能更容易地移植到另外的系統和裝置上。4 qt5...

Qt5 嵌入式裝置QT5動態庫編譯,QT5移植

perl 5.8 or later python 2.7 or later c compiler supporting the c 98 standard sdk提供 編譯套裝 sudo apt get install build essential sudo apt get install git...

微軟office的新變化

北京時間3月29日訊息,據國外 報道,微軟將於今年5月發布office 2010。但由於網際網路應用的逐漸興起,office 2010將會面臨著來自於谷歌的挑戰。微軟已經消滅了office辦公軟體的絕大部分競爭對手。但是來自於谷歌免費或廉價的基於網際網路的辦公軟體,正在對微軟盈利豐厚的office部...