原創 QT4公升級到QT5

2021-08-28 15:29:44 字數 1203 閱讀 2929

2023年第一篇部落格,新的一年新的開始,由於近乙個月忙於另外乙個專案,基本上沒有時間更新部落格。晚上回來收拾完已10點多。每天晚上抽出來半個小時,歷時乙個星期,今天終於將qt4的工程移植到qt5下。

由於qt的版本公升級,導致很多**出現不相容情況,特別是漢字的支援,雖然網上很多有關qt5對漢字的支援,但是針對的專案和使用的方法不一樣,不能使用「拿來主義」搞定出現的error。一切還要靠自己來解決。。。。

記錄背景:移植過程中遇到最為棘手的問題,也就是除錯時間最長的error記錄下來,以便後期使用時做乙個參考。

漢字。。。一切源頭**於漢字,一年前設計的專案,由於tcp和modbus協議中需要有漢字的出現,最終導致今天出現的問題,最為乙個程式設計師,我犯了最大的錯誤就是使用漢字,謹記此次的失誤,日後不要出現。

1) qt5取消了qstring對toascii的支援。

原工程所有的toascii,都將替換成tolatin1()。

2) 如果你公升級後的qtcreator開啟.c或者.h檔案時沒有對utf-8有很好的支援,那麼你就要辛苦一下:

在新版的creator重新建h檔案和c檔案。這個很重要,否則你即便使用對了函式,也未必能得到你想要的漢字。

3)如果qstring中含有漢字,將其轉變成qbytearray的方法:

qtextcodec

*pcodec

=qtextcodec

::codecforname

("gbk"

);

qbytearray

data

=pcodec

->

fromunicode

(strtcp

);

4)如果char *中含有漢字,將其轉成qstring的方法:

qtextcodec

*pcodec

=qtextcodec

::codecforname

("gbk"

);

qstring

strquery

=pcodec

->

tounicode

(query

);

其中query

為char *型。

QT4公升級到Qt5後,包含檔案更改總結

qt 5 編譯問題 qtftp add on 編譯並install 到ude qt5.2 目錄標頭檔案包含 include pro 檔案中qt ftp 編譯並install 到ude qt5.2 目錄標頭檔案包含 include pro 檔案中qt http if qt version 0x0500...

Qt4公升級Qt5問題總匯

qt 5 編譯問題 新增qtwidgets模組 o 標頭檔案包含 代替原有的等。o pro 檔案中qt widgets 新增qtwetkitwidgets模組 o 標頭檔案包含 o pro 檔案中qt webkitwidgets wflags is not a member of qt o wfla...

qt4公升級到qt5的一些問題

由於最近專案使用的qt版本從qt4.8公升級到qt5.5,雖然從4到5的變化不大,不過還是有許多的問題需要記錄一下,希望可以幫助到更多的人 1 由於qt5將大部分桌面部件移到了qt widgets模組中 因此在保護qtgui的地方需要包含qtwidgets模組 2 亂碼問題。方式針對vs,由於win...