翻譯|使用教程|編輯:鮑佳佳|2020-11-27 14:33:28.027|閱讀 546 次
概述:在Qt 5中,有些類別已經(jīng)有現(xiàn)有的替代品,并且某些類別在Qt 6開發(fā)階段得到了繼任者。因此,能夠同時使用舊的和新的Qt版本編譯代碼可能很有意義。這樣可以確保將不使用任何版本的代碼進(jìn)行編譯的工作量減至最少,從而使您的應(yīng)用程序或庫可以繼續(xù)與Qt 5和Qt 6一起工作。另一個優(yōu)點是,現(xiàn)有的單元測試對于大多數(shù)版本都可以繼續(xù)工作。移植的持續(xù)時間以及移植代碼所導(dǎo)致的回歸與Qt 6中引入的錯誤很容易區(qū)分開。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
Qt是一個跨平臺框架,通常用作圖形工具包,它不僅創(chuàng)建CLI應(yīng)用程序中非常有用。而且它也可以在三種主要的臺式機(jī)操作系統(tǒng)以及移動操作系統(tǒng)(如Symbian,Nokia Belle,Meego Harmattan,MeeGo或BB10)以及嵌入式設(shè)備,Android(Necessitas)和iOS的端口上運行。現(xiàn)在我們?yōu)槟闾峁┝嗣赓M的試用版。趕快點擊下載Qt6最新試用版>>
從Qt 5移植到Qt 6的過程一直很容易。在Qt 6的整個開發(fā)過程中,一直有意識地努力保持與Qt 5的盡可能多的源兼容性。盡管如此,移植仍需要一些努力。這篇簡短的文章總結(jié)了移植到Qt 6時所需的一些步驟。
工具推薦:
在Qt 5中,有些類別已經(jīng)有現(xiàn)有的替代品,并且某些類別在Qt 6開發(fā)階段得到了繼任者。因此,能夠同時使用舊的和新的Qt版本編譯代碼可能很有意義。這樣可以確保將不使用任何版本的代碼進(jìn)行編譯的工作量減至最少,從而使您的應(yīng)用程序或庫可以繼續(xù)與Qt 5和Qt 6一起工作。另一個優(yōu)點是,現(xiàn)有的單元測試對于大多數(shù)版本都可以繼續(xù)工作。移植的持續(xù)時間以及移植代碼所導(dǎo)致的回歸與Qt 6中引入的錯誤很容易區(qū)分開。
種類
下表列出了在Qt 6中已刪除但為了便于移植而保留在Qt5Compat中的類。它還包含將在Qt6中的新代碼中使用的類。
| Qt 5類 | Qt 6更換 |
|
QLinkedList |
std :: list * |
| QRegExp | QRegularExpression |
| QStringRef | QStringView |
| QXmlSimpleReader | QXmlStreamReader |
| QTextCodec | QStringConverter |
| QTextEncoder | QStringEncoder |
| QTextDecoder | QStringDecoder |
*如果不需要鏈接列表的引用穩(wěn)定性,則也可以考慮使用QList。
調(diào)整構(gòu)建系統(tǒng)如果要繼續(xù)使用上述Qt 5類,首先需要調(diào)整您的構(gòu)建系統(tǒng)以鏈接到新的Qt5Compat模塊。對于qmake構(gòu)建系統(tǒng),將以下行添加到.pro文件中:
QT += core5compat
如果您已經(jīng)將應(yīng)用程序或庫移植到了cmake構(gòu)建系統(tǒng),請將以下內(nèi)容添加到您的 CMakeList.txt:
PUBLIC_LIBRARIES Qt::Core5Compat
修復(fù)包括
除了顯然需要進(jìn)行的構(gòu)建系統(tǒng)更改外,您可能還需要修復(fù)前面提到的類的包含。您的實際代碼可能如下所示:
#include <QtCore / QRegExp>
需要針對新的Qt5Compat模塊進(jìn)行更新:
#include <QtCore5Compat / QRegExp>
或使用更加簡單和可移植的版本:
#include <QRegExp>
好了這就是今天的內(nèi)容了,如果今天的文章未解決你的需求,可點擊獲取更多免費教程。不要忘了在評論與我們分享您的想法和建議。
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請郵件反饋至chenjj@ke049m.cn
文章轉(zhuǎn)載自: