Qt最好用評價最高的是哪個版本?


來源: http://www.qtcn.org/bbs/read-htm-tid-89455.html

 

///

Qt4:    4.8.7      4.X 系列終結版本

Qt5 :   5.6 LTS  長期支持版本

Qt5:    5.9 LTS  長期支持版本

Qt5:    5.12 LTS 長期支持版本

Qt5:    5.15 LTS 長期支持版本

Qt 6 : ???

 

/

Qt 6 已經在2020年12月8日發布了。
但你沒有看錯,這篇是談 Qt 5 攻略。
畢竟 Qt 6 在 Win 平台將只支持 Win10 及其以上。所以大批 Win7、XP 黨 無緣 Qt 6。

而且 Qt6 為了趕進度,早期版本里缺少了很多模塊,例如 圖表、數據可視化、WebEngine
所以也沒必要急着嘗鮮 Qt 6 ,建議等完整版出來后,再升級也不遲。

那么 Qt 5 的各個版本,該如何選擇呢?
Qt 5.9 作為LTS也已經在2020年5月31日停止更新了,所以建議使用目前依舊在更新的LTS:5.12 與 5.15。
能直接使用 Qt 5.15 當然是最好的,若實在有難處,就用 5.12 吧,但至少別再用 Qt 5.9 之前的版本了。

如果你需要用到 QtWebkit,則只能用 Qt5.5及其以前的版本。
如果你需要 PDF 的支持,建議升級至 5.15,因為新增模塊 Qt PDF
如果你需要 SSL 的支持,建議升級至 5.15,因為 5.13 開始已自支持 OpenSSL 1.1 及其以上。
如果你常用 QImage,建議升級至 5.15,因為縮放和轉換的許多方法都升級成多線程的。
如果你常用 QtQuick,建議升級至 5.15,因為 5.14 開始 QtQuick 不再局限於 OpenGL 引擎加速。
如果你常用 QNetworkAccessManager,建議升級至 5.15,因為開始支持超時設置 setTransferTimeout
如果你發行在 Windows 平台,建議升級至 5.15,因為 5.14 開始對高DPI的設備有更好的支持。
如果你需要開發 安卓APP,建議升級至 5.15,因為該版本完善了安卓開發文檔。

特別說明
已自支持 OpenSSL 是很實用很實用的。
QNetworkAccessManager 的 setTransferTimeout 超時設置 是很實用很實用的。
現在很多設備,特別是筆記本,都是高分屏設備,對高分屏的良好支持是 5.14 開始的。
對觸摸屏設備的良好支持,是 Qt 5.12 開始的。
有些高富帥設備,既是高分屏,又是觸摸屏,例如 surface ,那必須 5.14 至少。
有些對話框的標題欄,會出現“?”按鈕,叫“這是什么”的提示,很討厭。 5.10 支持移除。

 

以下是 Qt 5.9 之后,各個版本比較重要的新特性:

Qt 5.15 LTS 維護至 2023年5月29日
https://wiki.qt.io/New_Features_in_Qt_5.15
QFile :: moveToTrash,將文件移動到回收站(以前只能直接刪除文件)
QThreadPool :: start、tryStart,開始支持lambda
添加了靜態模板QDebug :: toString函數,該函數將給定的對象傳輸到對字符串進行操作的QDebug實例中,然后返回該字符串。
QImage 的縮放和轉換的許多方法都升級成多線程的。
QNetworkAccessManager 開始支持超時設置。
QWebEngineHistory 添加 clear
QWebSocket 開始支持設置最大幀大小和消息大小。
Qt Android 完善了開放文檔
新模塊 Qt PDF

Qt 5.14
https://wiki.qt.io/New_Features_in_Qt_5.14
更新了High-DPI支持。
QTextDocument支持讀寫Markdown格式,以替代HTML。
添加了獨立於圖形API的Scenegraph渲染器的第一個預覽。這允許在Vulkan,Metal或Direct3D 11而不是OpenGL上運行合格的Qt Quick應用程序。

Qt 5.13
https://wiki.qt.io/New_Features_in_Qt_5.13
Windows 平台開始自帶支持 OpenSSL
新增平台 Qt for WebAssembly
安卓平台 的QFile 開始支持 Urls

Qt 5.12 LTS  維護至 2021年12月6日
https://wiki.qt.io/New_Features_in_Qt_5.12
基於Windows 8及更高版本上的Windows指針輸入消息,以統一的實現方式替代了平板電腦/觸摸屏/觸摸板/鼠標輸入的處理。

Qt 5.11
https://wiki.qt.io/New_Features_in_Qt_5.11
QML性能大幅增強
Qt 3D CPU 占用大幅減少
Window 平台更新了易用性支持。

Qt 5.10
https://wiki.qt.io/New_Features_in_Qt_5.10
添加了QIODevice :: skip()
添加了跨平台Vulkan啟動器:QVulkanInstance
QWidget :: createWindowContainer()現在可在Android上使用
QOpenGLWidget現在可用於呈現和讀取(抓取)屏幕外內容。
添加了AA_DisableWindowContextHelpButton屬性,可防止Windows對話框上的自動“這是什么”按鈕
新方法QWebEnginePage :: download用於以編程方式開始下載。
新增模塊 Qt Speech 用於文本轉語音

Qt 5.9 LTS 已於2020年5月31日終止維護,不建議使用及其以前的版本
https://wiki.qt.io/New_Features_in_Qt_5.9

 

///

如果是嵌入式類應用的還是暫時用4.8系,

如果PC應用,GPU不錯的試試最新版5.X,界面更美觀

///

 

我個人從Qt4.7.0開始用起,之間用過4.8系列,Qt5.2,5.3,5.4,5.5,5.6,5.7,5.8。最后選用Qt4.8.7作為最終解決方案,正如官網所說,Qt4.8.7是Qt4系列的終結版本,解決了以往的所有BUG。而且是打包需要帶的動態庫最小的,壓縮下基本上在3MB左右。CPU占用也是最小的,我對比過好多個版本,Qt4.8.7是最好的。下面這個程序就是Qt4.8.7打包的,包含的功能強大,打包壓縮極小。

 

///

Qt發展到現在,哪還會有一個版本最好用這樣的說法。

只有最合適,最匹配需求的版本之說。

那么這個之說到底是什么說呢,我舉幾個例子。

如果你希望體驗新功能,比如說5.8中的qmlc緩存機制(用於提升程序啟動速度),並且對將來新版本Qt的新功能充滿期待,願意不斷的學習,覺得越新越好。並且願意接受因為新版本升級帶來的新問題(其實往上兼容,基本上不會遇到什么問題)。那么可以考慮追一下新版本。目前Qt最新版本是Qt5.8.0。我也一路追到了這個版本。從我追版本的感受來看,基本上是瑕不掩瑜的。當然也不乏升級后,整個程序無法使用,然后修改了半天才恢復正常的事情。

或者說,你的設備是老的嵌入式設備,性能有限。而且因為種種原因,根本不考慮使用QtQuuick,只使用QtWidgets。或者說所擁有的環境或者工具鏈也比較老,對Qt5支持很差。那么這時候,基本就只能用Qt4了。而如果是在Qt4里面選,那么推薦是4.8.6。這是Qt官方上最后一個Qt4版本。別看是Qt4,這個更新是在14年6月。也沒那么的老。

或者說,你希望在一個穩定的Qt版本基礎上,開發一個產品級應用。不希望版本中的功能經常發生太多的變化,被發現的新問題可以被及時修復。並且希望Qt對這個版本進行長時間的維護,那么可以選擇Qt5.6的版本,這是一個LTS(長期支持)版本,計划的維護時間是3年。到現在應該是快滿1年了。還剩余2年的時間。不過也說不定到時候官方會延長這個支持的時間。

或者說,公司其實已經欽定了一個版本,尤其是做嵌入式,涉及到太多的東西。那么這時候,只要主要功能都能用,滿足絕大部分需求,我建議還是不要修改大版本比較好,因為版本遷移,會帶來太多的隱患,有時候不光是Qt自己的,還有工具鏈升級導致的衍生bug。

或者說,其實你的嵌入式設備,比如說樹莓派,並沒有豐富的工具鏈或者環境或者公版Qt(已經編譯好,可以直接用)提供使用,那么這時候,選擇這個設備下相對受歡迎或者相對使用較多的版本,是一個合適的選擇。

不過啊,如果你只是開啟一個新的項目,需要一個簡單並且快速的結論,那么我的建議是使用QtQuick,Qt5.8(越新越好)

///

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM