最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

Qt框架的一個(gè)新的長期支持版本6.5最近發(fā)布。它為以前的版本引入了許多修復(fù)、改進(jìn)和新功能。有些可能對(duì)您的應(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)了對(duì)將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ā)布了簡(jiǎn)化遷移到Qt 5.15的機(jī)制。從Qt 5的先前版本遷移到最新版本的Qt 5應(yīng)該很簡(jiǎn)單。

第 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工具可以提示不再受支持的代碼的所有部分。請(qǐng)看步驟4.

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

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

 頭文件包含也需要更改:

最后,請(qǐng)做好相關(guān)測(cè)試。

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

相關(guān)文章

  • 淺析VSCode tasks.json中的各種替換變量的意思 ${workspaceFolder} ${file} ${fileBasename} ${fileDirname}等

    淺析VSCode tasks.json中的各種替換變量的意思 ${workspaceFolder} ${file} ${

    這篇文章主要介紹了關(guān)于VSCode tasks.json中的各種替換變量的意思 ${workspaceFolder} ${file} ${fileBasename} ${fileDirname}等,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有參考借鑒價(jià)值,需要的朋友可以參考下
    2020-03-03
  • Qt圓角窗口的兩種實(shí)現(xiàn)方案詳解

    Qt圓角窗口的兩種實(shí)現(xiàn)方案詳解

    在Qt中設(shè)置控件的圓角通??梢酝ㄟ^Qt樣式表(QSS)來實(shí)現(xiàn),這是一種非常靈活且強(qiáng)大的方式來定制Qt控件的外觀,這篇文章主要介紹了Qt圓角窗口的兩種實(shí)現(xiàn)方案,需要的朋友可以參考下
    2026-01-01
  • C語言實(shí)現(xiàn)將字符和數(shù)字串到一起

    C語言實(shí)現(xiàn)將字符和數(shù)字串到一起

    今天小編就為大家分享一篇C語言實(shí)現(xiàn)將字符和數(shù)字串到一起,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12
  • C++實(shí)現(xiàn)信息管理系統(tǒng)

    C++實(shí)現(xiàn)信息管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)信息管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • c/c++內(nèi)存分配大小實(shí)例講解

    c/c++內(nèi)存分配大小實(shí)例講解

    在本篇文章里小編給大家整理了一篇關(guān)于c/c++內(nèi)存分配大小實(shí)例講解內(nèi)容,有需要的朋友們可以跟著學(xué)習(xí)參考下。
    2021-11-11
  • C++使用模板實(shí)現(xiàn)單鏈表

    C++使用模板實(shí)現(xiàn)單鏈表

    這篇文章主要為大家詳細(xì)介紹了C++使用模板實(shí)現(xiàn)單鏈表,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-12-12
  • c++加法高精度算法的簡(jiǎn)單實(shí)現(xiàn)

    c++加法高精度算法的簡(jiǎn)單實(shí)現(xiàn)

    下面小編就為大家?guī)硪黄猚++加法高精度算法的簡(jiǎn)單實(shí)現(xiàn)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2016-09-09
  • OpenCV實(shí)現(xiàn)智能視頻監(jiān)控

    OpenCV實(shí)現(xiàn)智能視頻監(jiān)控

    這篇文章主要為大家詳細(xì)介紹了OpenCV實(shí)現(xiàn)智能視頻監(jiān)控,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-08-08
  • C++基礎(chǔ)學(xué)習(xí)之利用兩個(gè)棧實(shí)現(xiàn)一個(gè)隊(duì)列

    C++基礎(chǔ)學(xué)習(xí)之利用兩個(gè)棧實(shí)現(xiàn)一個(gè)隊(duì)列

    這篇文章主要給大家介紹了關(guān)于C++基礎(chǔ)學(xué)習(xí)之利用兩個(gè)棧實(shí)現(xiàn)一個(gè)隊(duì)列的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用C++具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05
  • QT實(shí)現(xiàn)簡(jiǎn)單五子棋游戲

    QT實(shí)現(xiàn)簡(jiǎn)單五子棋游戲

    這篇文章主要為大家詳細(xì)介紹了QT實(shí)現(xiàn)簡(jiǎn)單五子棋游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-05-05

最新評(píng)論

民县| 广水市| 抚顺县| 钟山县| 宾阳县| 临颍县| 连江县| 乐亭县| 余姚市| 共和县| 云浮市| 尚义县| 汤阴县| 藁城市| 吉安县| 遂平县| 彝良县| 格尔木市| 平江县| 合作市| 秭归县| 天全县| 昭通市| 三原县| 比如县| 剑阁县| 崇左市| 东乡县| 罗源县| 呼伦贝尔市| 宝兴县| 云浮市| 大埔县| 文山县| 汨罗市| 大田县| 辽宁省| 辉南县| 洛浦县| 肇庆市| 古蔺县|