欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Qt5升級到Qt6分步遷移教程小結(jié)

 更新時(shí)間:2023年09月01日 15:31:20   作者:閆有盡意無瓊  
Qt框架的一個(gè)新的長期支持版本6.5最近發(fā)布,本文主要介紹了Qt5升級到Qt6分步遷移教程小結(jié),具有一定的參考價(jià)值,感興趣的可以了解一下

Qt框架的一個(gè)新的長期支持版本6.5最近發(fā)布。它為以前的版本引入了許多修復(fù)、改進(jìn)和新功能。有些可能對您的應(yīng)用程序有用(如果不是現(xiàn)在,可能會(huì)在將來),因此最好將應(yīng)用程序遷移到最新版本的框架。 

仍然有許多應(yīng)用程序仍在使用Qt 5,因此直接遷移到最新版本的框架并不容易。在本文中主要指出從Qt 5順利遷移到Qt 6的最關(guān)鍵步驟。

那么,為什么是Qt 6呢? 

  • 改進(jìn)了性能。Qt 6引入了一個(gè)新的渲染管線,可以提高性能并減少內(nèi)存使用量,從而產(chǎn)生更快、響應(yīng)更快的應(yīng)用程序。
  • 改進(jìn)的 QML。QML 已得到增強(qiáng),性能更好,改進(jìn)了對將C++類導(dǎo)出到 QML 的支持,以及用于調(diào)試 QML 代碼的更強(qiáng)大的工具。新的Qt快速編譯器允許您預(yù)編譯QML文件,以加快啟動(dòng)時(shí)間。
  • 改進(jìn)的模塊。一些模塊已被重寫和改進(jìn),例如Qt Quick 3D,Qt Multimedia和Qt WebEngine。使用這些模塊的最新版本將確保您的應(yīng)用程序符合當(dāng)前標(biāo)準(zhǔn)。
  • 附加模塊。許多模塊將作為附加組件提供。它將使Qt二進(jìn)制文件更小,并允許您僅在項(xiàng)目中需要時(shí)才下載模塊。
  • 統(tǒng)一后端。Qt 6提供了一個(gè)API來訪問多個(gè)環(huán)境中特定于平臺(tái)的功能。這包括圖形、多媒體、輸入和窗口系統(tǒng)。
  • 長期支持。Qt 5已經(jīng)到了它的生命周期,雖然某些舊版本仍然有安全和錯(cuò)誤修復(fù),但任何新的特性或功能都只能在Qt 6中使用。如果您不希望您的應(yīng)用程序過時(shí)得太快,您應(yīng)該進(jìn)行遷移。

這些是確保使用最新版本的Qt 6使您的應(yīng)用程序與最新功能保持同步的主要內(nèi)容。應(yīng)用程序的性能將比以前更好,并且將來維護(hù)應(yīng)用程序?qū)⒏菀住?/p>

遷移到Qt 6的路徑

第 1 步、QT 移植到 QT 5.15 

將應(yīng)用程序移植到Qt 5的最新版本,然后切換到Qt 6要容易得多。這是因?yàn)镼t在6.5版本中只發(fā)布了簡化遷移到Qt 5.15的機(jī)制。從Qt 5的先前版本遷移到最新版本的Qt 5應(yīng)該很簡單。

第 2 步、檢查模塊更改 

在Qt 6中,Qt 5中提供的某些模塊不再可用。這些模塊將被刪除、重命名或合并到不同的模塊中。在最新版本中,幾個(gè)已刪除的模塊已經(jīng)刷新并添加到框架中。

通過檢查模塊更改,可以確保應(yīng)用程序在遷移后按預(yù)期工作。當(dāng)模塊不再存在時(shí),關(guān)于如何表現(xiàn)的可能解決方案可能會(huì)有所不同。下面是幾個(gè)已棄用模塊的示例,以及如何更新使用它們的代碼。

  • Qt 快速控制 1 → 使用新的 Qt 快速控制 2
  • Qt Multimedia Widgets → 使用 Qt Multimedia 的 QML API
  • Qt 圖形效果 → 使用 Qt5Compat 模塊(Qt Quick MultiEffect 從 Qt 6.5 開始)

因此,取決于需要替換的模塊。刪除模塊和其他更改的完整列表可以在Qt文檔中找到。

“是否需要檢查文檔中每個(gè)模塊的更改?”

沒必要。它可以幫助您找到已棄用API的正確替代品,但Qt creator工具可以提示不再受支持的代碼的所有部分。請看步驟4.

第 3 步、QT移植:檢查您的環(huán)境 

Qt 6需要C++17或更高版本的編譯器(例如,對于Windows – MinGW 8.1.0或msvc 2019),因此如果您使用的是舊版本,則是時(shí)候升級了。Qt公司開發(fā)的工具也支持Qt 6,因?yàn)樘囟ò姹?。對于Qt Creator,它是4.14,對于Qt Design Studio,它是2.0。

如果安裝了正確的編譯器和工具,則為 Qt 6 準(zhǔn)備的應(yīng)用程序應(yīng)在移植后正確構(gòu)建和運(yùn)行。

第 4 步、執(zhí)行移植到 QT 6 

擺脫已棄用的功能。 

在Qt 5.15中,Qt 6中不包含的所有內(nèi)容都被標(biāo)記為已棄用。默認(rèn)情況下,此代碼的使用將作為編譯器警告彈出。但是也可以選擇將其視為錯(cuò)誤。

要確保這一點(diǎn),需要定義它應(yīng)設(shè)置為指定宏時(shí),已棄用的功能(在給定版本的Qt或任何更早版本中)將被禁用。

QT_DISABLE_DEPRECATED_BEFORE 0x050F00

如果在生成過程中看到任何錯(cuò)誤,則應(yīng)重構(gòu)該部分。

不帶宏的輸出。應(yīng)用已正確構(gòu)建。

使用宏輸出。無法構(gòu)建應(yīng)用。 

運(yùn)行沖突并擺脫這些警告。 

Clazy 是一個(gè)靜態(tài)分析工具,可作為 QtCreator 中的插件使用。Clazy 可以分析代碼并向您展示需要改進(jìn)的地方??梢悦鞔_地告訴 Clazy 在執(zhí)行過程中要檢查什么。需要檢查一些特殊選項(xiàng),這些選項(xiàng)可以指向Qt 6中不支持的代碼部分。Clazy 也能夠自動(dòng)修復(fù)這些警告。

在移植過程中有用的選項(xiàng):

  • qt6-deprecated-api-fixes 
  • qt6-header-fixes 
  • qt6-qhash-signature 
  • qt6-fwd-fixes 
  • missing-qobject-macro 

 可以在首選項(xiàng)→分析器→Clang工具→診斷配置中更改延遲配置。

 在移植過程中有用的選項(xiàng):

輸出示例。

必要時(shí)使用 Qt5Compat 模塊。 

在第2步中,提到了一個(gè)名為Qt5Compat模塊?

引入該模塊是為了更好的進(jìn)行遷移和過渡。它提供了Qt 6中消失的一些類,例如QRegExp和QStringRef,但由于這一點(diǎn),它仍然可以在Qt 6應(yīng)用程序中使用。比如某些模塊在Qt 6中消失了,但將在下一個(gè)版本中作為MultiEffect重新引入。因此,在此期間,可以暫時(shí)使用Qt5Compat模塊來確保兼容性。但是當(dāng)MultiEffect模塊可用時(shí),應(yīng)該重寫代碼以切斷過時(shí)的API。

如何將模塊導(dǎo)入到項(xiàng)目中:

 頭文件包含也需要更改:

最后,請做好相關(guān)測試。

到此這篇關(guān)于Qt5升級到Qt6分步遷移教程小結(jié)的文章就介紹到這了,更多相關(guān)Qt5升級到Qt6內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C++的靜態(tài)成員變量和靜態(tài)成員函數(shù)你了解多少

    C++的靜態(tài)成員變量和靜態(tài)成員函數(shù)你了解多少

    這篇文章主要為大家詳細(xì)介紹了C++的靜態(tài)成員變量和靜態(tài)成員函數(shù),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • C++ 數(shù)據(jù)結(jié)構(gòu)實(shí)現(xiàn)兩個(gè)棧實(shí)現(xiàn)一個(gè)隊(duì)列

    C++ 數(shù)據(jù)結(jié)構(gòu)實(shí)現(xiàn)兩個(gè)棧實(shí)現(xiàn)一個(gè)隊(duì)列

    這篇文章主要介紹了詳解C++ 數(shù)據(jù)結(jié)構(gòu)實(shí)現(xiàn)兩個(gè)棧實(shí)現(xiàn)一個(gè)隊(duì)列的相關(guān)資料,需要的朋友可以參考下
    2017-03-03
  • Qt將數(shù)據(jù)庫中的數(shù)據(jù)導(dǎo)出為html

    Qt將數(shù)據(jù)庫中的數(shù)據(jù)導(dǎo)出為html

    這篇文章主要為大家詳細(xì)介紹了Qt如何實(shí)現(xiàn)將數(shù)據(jù)庫中的數(shù)據(jù)導(dǎo)出為html,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-12-12
  • C++實(shí)現(xiàn)希爾排序算法實(shí)例

    C++實(shí)現(xiàn)希爾排序算法實(shí)例

    大家好,本篇文章主要講的是C++實(shí)現(xiàn)希爾排序算法實(shí)例,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下,方便下次瀏覽
    2022-01-01
  • C++11原子操作詳解

    C++11原子操作詳解

    這篇文章主要為大家介紹了C++的原子操作,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2021-11-11
  • C++11中異常處理機(jī)制詳解

    C++11中異常處理機(jī)制詳解

    傳統(tǒng)的C語言處理異常的方式有兩種:終止程序和返回錯(cuò)誤碼。在實(shí)際中的C語言程序基本都是通過返回錯(cuò)誤碼的方式來處理錯(cuò)誤的,部分情況下使用終止程序來處理比較嚴(yán)重的錯(cuò)誤。本文將通過示例和大家聊聊C++11中異常處理機(jī)制,需要的可以參考一下
    2022-09-09
  • C++中const關(guān)鍵字的用法圖文詳解

    C++中const關(guān)鍵字的用法圖文詳解

    在C++中const是一個(gè)關(guān)鍵字,用于聲明常量,它可以用于多種情況,包括聲明常量變量、常量指針、以及成員函數(shù)中的常量性,這篇文章主要給大家介紹了關(guān)于C++中const關(guān)鍵字用法的相關(guān)資料,需要的朋友可以參考下
    2024-08-08
  • C和MFC巧妙獲取外網(wǎng)IP的兩種實(shí)現(xiàn)方法

    C和MFC巧妙獲取外網(wǎng)IP的兩種實(shí)現(xiàn)方法

    這篇文章主要介紹了C和MFC巧妙獲取外網(wǎng)IP的兩種實(shí)現(xiàn)方法,功能非常的實(shí)用,需要的朋友可以參考下
    2014-07-07
  • Qt6.3 + Clion +MSVC2019環(huán)境配置詳解

    Qt6.3 + Clion +MSVC2019環(huán)境配置詳解

    本文主要介紹了Qt6.3 + Clion +MSVC2019環(huán)境配置詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-01-01
  • 帶你粗略了解C++中的深淺拷貝

    帶你粗略了解C++中的深淺拷貝

    這篇文章主要給大家介紹了關(guān)于c++中深淺拷貝以及寫時(shí)拷貝實(shí)現(xiàn)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面跟著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-08-08

最新評論