• <menu id="w2i4a"></menu>
  • logo Qt使用教程2020

    文檔首頁(yè)>>Qt使用教程2020>>C++跨平臺(tái)圖形用戶界面開(kāi)發(fā)框架Qt最新版5.15功能概述

    C++跨平臺(tái)圖形用戶界面開(kāi)發(fā)框架Qt最新版5.15功能概述


    Qt(發(fā)音為“ cute”,而不是“ cu-tee”)是一個(gè)跨平臺(tái)框架,通常用作圖形工具包,它不僅創(chuàng)建CLI應(yīng)用程序中也非常有用。而且它也可以在三種主要的臺(tái)式機(jī)操作系統(tǒng)以及移動(dòng)操作系統(tǒng)(如Symbian,Nokia Belle,Meego Harmattan,MeeGo或BB10)以及嵌入式設(shè)備,Android(Necessitas)和iOS的端口上運(yùn)行。點(diǎn)擊下載Qt最新試用版>>

    【同類產(chǎn)品推薦】

    • QtitanRibbon| 下載試用: 遵循Microsoft Ribbon UI Paradigm for Qt技術(shù)的Ribbon UI組件,致力于為Windows、Linux和Mac OS X提供功能完整的Ribbon組件。
    • QtitanChart | 下載試用 :是一個(gè)C ++庫(kù),代表一組控件,這些控件使您可以快速地為應(yīng)用程序提供漂亮而豐富的圖表。并且支持所有主要的桌面操作系統(tǒng)。
    • QtitanDataGrid| 下載試用 :適用于Qt的商業(yè)化DataGrid 組件,使得表格數(shù)據(jù)可以直接面向終端用戶完全集成了QtDesigner,極易適應(yīng)其他相似開(kāi)發(fā)環(huán)境,保證100%兼容Qt GUI。

    作為Qt 5系列的最后版本,您可以輕松地將其升級(jí)到正在進(jìn)行的項(xiàng)目中。它與以前的Qt 5版本一樣是完全向后兼容的。Qt 5.15在修復(fù)bug方面也做了大量工作,是我們?cè)赒t 5系列中最好、最穩(wěn)定的版本。

    Qt 5.15也是通向Qt 6的墊腳石。雖然Qt 6將在Qt的基礎(chǔ)上做出一些實(shí)質(zhì)性的改變,但我們?nèi)栽噲D盡可能簡(jiǎn)單地將代碼庫(kù)從Qt 5遷移到Qt 6。為了幫助實(shí)現(xiàn)這一轉(zhuǎn)變,我們標(biāo)記了許多將在Qt 6中廢棄的功能。在5.15中啟用和修復(fù)關(guān)于廢棄功能的警告,能夠使代碼庫(kù)遷移到Qt 6上更容易。

    但Qt 5.15也有很多新特性。

    抽象的3D圖形API

    最重要的變化可能發(fā)生在圖形方面。很多變化都是在后臺(tái)進(jìn)行的,用戶并不能立即看到它們。在過(guò)去的一年中,我們一直致力于圖形渲染堆棧架構(gòu)的徹底改造。這個(gè)升級(jí)將成為Qt 6的核心,并且在Qt 5.15中已經(jīng)可以選擇性啟用。

    在Qt 5中我們假設(shè)可以使用OpenGL作為3D圖形的跨平臺(tái)API,并以此構(gòu)建了圖形堆棧。在過(guò)去的幾年里,業(yè)界發(fā)生了巨大的變化,使得開(kāi)發(fā)和部署使用3D圖形的應(yīng)用程序變得更加復(fù)雜。蘋果已經(jīng)開(kāi)始著手開(kāi)發(fā)Metal,并且前一段時(shí)間在macOS和iOS上棄用了OpenGL。Khronos集團(tuán)一直致力于用Vulkan取代OpenGL, 并將其推廣到Android和Linux。微軟的Direct 3D 12是一個(gè)完全重寫的API,完全不兼容舊的Direct 3D版本。與此同時(shí),OpenGL在相當(dāng)長(zhǎng)的一段時(shí)間內(nèi)都不會(huì)消失。

    基于Qt的跨平臺(tái)承諾,我們希望有一個(gè)適用于所有平臺(tái)的解決方案。為了實(shí)現(xiàn)這一點(diǎn),我們?cè)谝荒甓嘁郧熬烷_(kāi)始為所有這些API開(kāi)發(fā)一個(gè)抽象層。我們稱之為Qt渲染硬件接口(RHI),可用于在Direct 3D、Metal、Vulkan和OpenGL上運(yùn)行Qt Quick應(yīng)用程序。它在Qt 5.15中以技術(shù)預(yù)覽形式被支持,您可以通過(guò)一個(gè)環(huán)境變量啟用Qt RHI來(lái)使用它。在Qt 6中,這一層將成為Qt架構(gòu)的核心部分。

    有關(guān)RHI的更多細(xì)節(jié),請(qǐng)查看Laszlo關(guān)于這個(gè)主題的系列博客文章。

    Qt Quick 3D

    Qt 5.15的另一個(gè)重要的新特性也與圖形有關(guān)。在Qt 5.0時(shí)代,引入了Qt Quick作為Qt架構(gòu)的基石。它的重點(diǎn)是簡(jiǎn)化創(chuàng)建動(dòng)畫、觸摸式的2D用戶界面?,F(xiàn)在Qt 5.15配備了完全支持的Qt Quick 3D,擴(kuò)展了易于使用的理念,將3D內(nèi)容集成到基于Qt Quick的應(yīng)用程序中。借助Qt Quick 3D,您可以輕松地在QML中定義3D場(chǎng)景,定義網(wǎng)格、光源和材質(zhì),并將所有內(nèi)容與2D UI無(wú)縫結(jié)合。

    在需要使用不同的技術(shù)(使用Qt 3D、Qt 3D Studio或raw OpenGL)分別開(kāi)發(fā)2D和3D部件的場(chǎng)景下,您現(xiàn)在可以輕松擁有一個(gè)集成解決方案。

    我們開(kāi)發(fā)了一個(gè)很酷的演示,你可以用它測(cè)試Qt Quick 3D 5.15的不同功能,比如改變燈光類型和數(shù)量,模型復(fù)雜性和數(shù)量,紋理大小,材質(zhì),抗鋸齒方法和質(zhì)量等等。這樣,您就可以快速地測(cè)試,例如,繪制的模型數(shù)量對(duì)硬件性能的影響是否大于模型中的三角形數(shù)量。以下是視頻演示:

    Qt Quick 3D在Qt 5.14中作為技術(shù)預(yù)覽版引入。Qt 5.15作為完全支持的版本利用了許多額外特性,比如支持后期處理效果,一個(gè)用于自定義幾何圖形的全新C++ API,一個(gè)用于旋轉(zhuǎn)的基于四元數(shù)的API,以及對(duì)聚光燈的支持?,F(xiàn)在,由于大量的幕后工作,您可以更容易地在3D場(chǎng)景中使用2D Qt Quick并獲得更好的總體性能。

    其他改進(jìn)

    Windows用戶會(huì)很高興知道Qt將更好地支持客戶端/自定義窗口裝飾,允許用戶定義自己的窗口裝飾,并將自定義內(nèi)容放入窗口標(biāo)題欄空間。

    Qt Lottie是我們?cè)赒t 5.14中作為技術(shù)預(yù)覽版引入的模塊,現(xiàn)已得到完全支持。該模塊允許用戶將After Effects動(dòng)畫集成到基于Qt的應(yīng)用程序中。

    Qt WebEngine已經(jīng)從Qt 5.14中的Chromium 77更新到Chromium 80,并提供了Chromium更新的所有新特性。

    Qt 3D獲得了更好的性能分析和調(diào)試支持,以及增加了一些較小的新特性。

    Qt Multimedia現(xiàn)在支持渲染到多個(gè)表面上。在Qt GUI中,現(xiàn)在圖像縮放和轉(zhuǎn)換例程在許多用例中都是多線程的。

    Qt Network現(xiàn)在支持TLS 1.3 session tickets和可配置的超時(shí)操作。

    QtCore中,QRunnable和QThreadPool現(xiàn)在可以與std::函數(shù)一起工作;并且新的QFile::moveToTrash()方法可以跨平臺(tái)刪除文件。

    最后,我們還在Android上添加了對(duì)本地文件對(duì)話框的支持。

    本篇文章中我你是否對(duì)Qt5.15有了進(jìn)一步的認(rèn)識(shí)呢,現(xiàn)在立刻下載Qt免費(fèi)試用吧!更多Qt類開(kāi)發(fā)工具QtitanRibbon、QtitanChart、QtitanNavigation、QtitanDocking、QtitanDataGrid在線訂購(gòu)現(xiàn)直降1000元,歡迎咨詢慧都在線客服獲取更多優(yōu)惠>>

    掃碼咨詢


    添加微信 立即咨詢

    電話咨詢

    客服熱線
    023-68661681

    TOP
    三级成人熟女影院,欧美午夜成人精品视频,亚洲国产成人乱色在线观看,色中色成人论坛 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();