主頁 > 前端設計 > Qt 6.0正式版2020-12-08發布

Qt 6.0正式版2020-12-08發布

2020-12-11 12:23:41 前端設計

Qt 6.0正式版2020-12-08發布

鏈接下載online 安裝工具進行在線安裝:

https://download.qt.io/official_releases/online_installers/

Qt也提供了原始碼包:

https://download.qt.io/development_releases/qt/6.0/

圖展示

QT6.0整體界面風格繼承QT以往一慣風格,QtCreator用的4.12.4的版本,整體風格變化不大,下面是安裝后打開QT Creator截圖,
在這里插入圖片描述
在這里插入圖片描述

Qt的價值體現

  • 跨平臺特性,用戶可使用一種技術,把一套代碼部署到各種的桌面、移動和嵌入式平臺
  • 可擴展性,覆寫了從低端的單用途設備到高端復雜的桌面應用程式和互聯系統
  • 世界一流的API、工具和檔案,簡化了應用程式和設備的開發流程
  • 可維護性、穩定性和兼容性,輕松維護大型代碼庫
  • 擁有超過100萬用戶的大型開發者生態

Qt 6 的發展方向

新版本的Qt需要我們進行一些調整以適應新的市場需求,同時也要把上述5個價值觀作為我們作業的核心內容, 桌面應用是Qt的基礎,也是Qt得以成長和強大的市場,桌面應用是我們大多數用戶第一次接觸Qt的地方,也是組成Qt工具鏈的基礎,保持桌面應用的健康和成長是在其他市場也保持增長的先決條件, 嵌入式和互聯設備是我們增長最快的領域,觸屏設備的數量正在以指數級增長,但這些設備的硬體價格卻承受著巨大壓力,低端芯片組,單片機,結合中小型觸摸屏的設備將無處不在,這些設備中的大多數都是功能相對簡單的,但它們都需要精致流暢的用戶界面,因此我們需要確保我們的產品能夠瞄準這個空間,從而實作我們的可擴展的承諾, 與此同時,高端設備的用戶界面的復雜性將繼續增加,它們往往包括了數千個不同的螢屏和許多的應用程式,將2D和3D元素合并到一個用戶界面也是很常見的,增強和虛擬現實的使用也是如此, 人工智能的元素將更廣泛地應用于應用程式和設備中,我們需要有簡單的方法來集成這些元素, 正在創建的互聯設備數量的強勁增長,以及對用戶體驗的更高要求,使得我們更有必要專注于開發全球領先的工具,以簡化應用程式和設備的創建流程,將UX設計人員集成到開發作業流中是我們的目標之一,但是我們還需要在許多其他領域去嘗試進一步簡化用戶的作業, Qt 6將是Qt的一個新的重大版本,這個版本的主要目標是為2020年以后的需求做好準備,在此次程序中我們將對代碼庫進行整理,使其更容易維護,重點將放在Qt中那些需要調整軟體架構的部分,但是如果不破壞與Qt 5.x兼容性,那這部分就無法完成, 為了適應未來幾年的需求,下面是我們會對Qt進行的的一些關鍵性修改,

新一代的QML

QML和Qt Quick是過去幾年推動Qt增長的主要技術,使用這些技術可以直觀的創建用戶界面是我們產品的一個獨特賣點, QML是為Qt 5創建的,但是它有一些問題和限制,這也意味著它可以大幅改進,我們計劃在Qt 6中實作這些改進,我們計劃如下: 引入強型別,弱型別使得用戶很難對他們的代碼庫進行大的更改,一個強大的型別系統允許IDE和其他工具幫助用戶完成這項任務,并極大地簡化了維護成本,此外,它還有助于我們生成性能更好的代碼和減少相關開銷, JavaScript成為QML的一個可選特性,使用QML時使用完整的JavaScript引擎會提升復雜性,而且會引起性能上的開銷,尤其是在單片機等低端硬體上,性能開銷更加明顯,然而,這個特性在許多其他應用場景中非常有用, 去掉了QML的版本控制,通過簡化QML中的某些查找規則并更改背景關系屬性的作業方式,我們可以消除QML中的版本控制,反過來,這將大大的簡化QML引擎,極大地簡化我們維護Qt Quick的作業負擔,并為用戶簡化QML和Qt Quick的使用流程, 洗掉QObject和QML之間重復的資料結構 ,目前我們的元物件系統和QML之間有相當多重復的資料結構,這些重復的資料結構會降低啟動性能,增加記憶體使用量,通過統一這些資料結構,我們能夠減少許多開銷, 避免運行時生成資料結構,這與上面的一點有關,其中許多重復的資料結構目前都是在運行時生成的,其中大多數完全有可能在編譯時生成, 支持把QML編譯成高效原生的C++代碼,通過強大的型別和更簡單的查找規則,我們可以將QML轉換為高效原生的C++代碼,從而顯著提高運行時性能, 支持隱藏實作細節,為了能夠在QML組件中隱藏資料和功能,對方法和屬性進行“私有化”一直是一個長期的需求, 更好的工具集成,我們當前的QML代碼模型時常不完整,這使得重構和在編譯時檢測錯誤變得困難甚至不可能,通過上述更改,應該能夠提供與C++相媲美的編譯時診斷以及大幅改進的重構支持,

下一代圖形

自從Qt 5.0以來,圖形領域發生了很多變化,這導致我們不得不對圖形堆疊進行重大更改,以保持其競爭力, 在Qt 5中,我們統一使用OpenGL作為3D圖形的API,從那時起,產生了許多新的API,在Linux上Vulkan是OpenGL的指定接班人,蘋果正在推動Metal的發展,而微軟有Direct 3D,這意味著Qt將來必須與所有這些API無縫地銜接,為了實作這一點,必須定義一個新的圖形抽象層的API(類似于平臺集成層的QPA),稱為渲染硬體介面(RHI),我們需要將所有的渲染基礎設施(QPainter、Qt Quick Scenegraph和我們的3D支持)建立在該層的基礎之上, 不同圖形API的合成也導致我們必須支持不同的著色語言,Qt著色器工具模塊將幫助我們在編譯和運行時交叉編譯著色器, 3D正在扮演越來越重要的角色,而我們目前的產品還沒有一個統一的解決方案來創建同時包含2D和3D元素的UI,目前,將QML與Qt 3D或3D Studio中的內容集成是很麻煩的,并且會導致一些性能開銷,此外,在2D和3D內容之間進行逐幀的影片同步和轉換還沒有辦法做到, 3D內容與Qt Quick新的集成方式就是為了解決這個問題,在這種情況下,一個全新的渲染器將允許同時渲染2D和3D內容,并支持兩者之間的任意嵌套,這將把QML轉換為3D UI的UI定義語言,并且不再需要UIP格式,我們將提供一個新的技術預覽版本的Qt Quick與3D支持的版本,它已經包含在了Qt 5.14中,更多的資訊將會在一個單獨的博文中進行說明, 最后,新的圖形堆疊需要強大的圖形素材處理的支持,它能在編譯時根據目標硬體預處理這些素材并在需要時使用,比如將PNG檔案轉換為壓縮紋理格式,將許多檔案編譯為紋理圖集,將著色器和網格轉換為優化的二進制格式等等, 我們還打算為Qt 6引入統一的主題樣式引擎,這將允許我們在桌面和移動平臺上獲得Qt Widgets和Qt Quick的原生外觀,

統一并且一致的工具庫

我們創建用戶界面的圖形工具已經被一分為二,包括Qt 3D Studio和Qt Design Studio,此外,Qt 3D Studio與Qt的其余部分有些脫節,導致了相當多的重復作業, 我們通過將Qt 3D Studio所需的功能合并回Design Studio來統一這些功能,Design Studio與Qt Creator共享了大量代碼和應用/插件框架,提供了很好的設計體驗,并為我們提供了在設計師和開發者之間搭建橋梁的工具, 設計工具還需要與Photoshop、Sketch、Illustrator、Maya、3D Max等內容創建工具進行良好的集成, 開發者工具需要大量的投入,這樣我們才能提供對C++、QML和Python等提供最佳的支持,提供統一工具還意味著開發人員可以很容易地使用Qt Creator中的設計功能,而UX設計者可以從開發者工具的特性(如編譯專案或在設備上測驗)中獲益, QMake作為Qt 5中使用的構建系統有很多缺陷和限制,對于Qt 6,我們的目標是使用CMake作為標準的第三方構建系統來構建Qt,到目前為止,CMake是C++世界中使用最廣泛的構建系統,我們迫切需要更好地與它集成,在QMake上我們將繼續支持用戶,但不會對其進一步開發或用來構建Qt框架本身,

增強已有的C++ API

C++在過去的幾年中發生了很大的變化,雖然Qt 5.0必須以C++ 98為基礎,但現在Qt 6可以依賴C++ 17,這意味著C++提供了更多的開箱即用的功能,這在我們使用Qt 5時是沒有的,我們使用Qt 6的目標是更好地集成這些能力,同時也保持向前的兼容性, Qt 6中,我們希望把QML和Qt Quick的一些功能引入到C++中,我們致力于為QObject及其相關類引入一個新的屬性系統,將QML中的系結引擎集成到Qt的核心中,并使其在C++中可用,新的屬性系統和系結引擎將顯著降低系結的運行時開銷和記憶體消耗,并使它們可用于Qt的所有部分,而不僅僅是Qt Quick,

語言支持

在Qt 5.12中,我們引入了對Python的支持,并通過Qt為WebAssembly添加了瀏覽器作為新的平臺,在發布6.0之后,保持并進一步擴展跨平臺特性將是Qt 6系列的一個重要部分,

兼容Qt 5和增量改進

與舊版本的兼容性是非常重要的,也是我們開發Qt 6時的主要需求,用戶已經使用我們的框架撰寫了數十億行代碼,因此,我們所做的任何不兼容的更改都會給用戶帶來額外的成本,此外,對Qt 6的更改要求用戶做的作業越多,用戶升級的速度就會越慢,這將導致維護Qt 5的最后一個版本的成本更高, 因此,在用戶代碼中我們應該避免觸發編譯時或運行時錯誤進而使得Qt運行崩潰,如果我們必須破壞兼容性,編譯時錯誤比運行時的靜默破壞更可取(因為后者更難檢測), 當我們確實需要洗掉Qt的某些廢棄部分,那么我們必須要確保它不會影響用戶需要的部分,大部分用戶都在使用的關鍵功能,比如Qt Widgets和其他部分毫無疑問必須保留, 我們正在計劃對核心類和功能進行許多在Qt 5中無法實施的增量改進,我們的目標是保持完整的源代碼兼容性,但是由于我們可以打破Qt 6的二進制兼容性,我們可以做很多在Qt 5中無法完成的清理和改進, 除了這些,我們還將對Qt 6進行其它的清理,我們將洗掉Qt 5中已經廢棄的大部分功能(函式、類或模塊),從長遠來看,這種清理將有助于節省開發人員的時間,并允許我們把更多的精力放在維護和編碼上, 然而,對棄用部分的移植需要盡可能的簡單,我們的用戶可以完美地使用Qt 5.15 LTS增量地完成這一作業,我們的目標應該是Qt 6與Qt 5.15 LTS足夠兼容,這樣就可以輕松地維護一個可以同時針對兩個版本編譯的大型代碼庫,

市場和技術產品結構

除了改進Qt框架和工具,我們的目標是為組件和開發工具創建一個新的市場,這個方向將面向開發、設計應用程式和嵌入式設備的直接使用者,而不是面向最終用戶,因此,它將成為Qt生態系統的一個凝聚中心,它將為第三方廠商提供一個發布Qt擴展組件的場所,擴展可以是免費或商業的, Qt在過去的幾年里增長良多,當前最重要的任務就是發布一個新版本,在Qt 6中,我們有機會重組我們的產品,并將必要的框架和工具打包為一個更小的核心,我們將利用應用市場來交付我們的附加框架和工具,而不是作為與核心Qt產品緊密耦合的捆綁包,這將使我們在何時交付以及如何交付方面具有額外的靈活性,并允許我們為某些附加組件解耦發布計劃,

轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/233135.html

標籤:其他

上一篇:Android記憶體管理機制官方詳解檔案

下一篇:用 Proxy 簡單實作 Vue 3 的 Reactive

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • vue移動端上拉加載

    可能做得過于簡單或者比較low,請各位大佬留情,一起探討技術 ......

    uj5u.com 2020-09-10 04:38:07 more
  • 優美網站首頁,頂部多層導航

    一個個人用的瀏覽器首頁,可以把一下常用的網站放在這里,平常打開會比較方便。 第一步,HTML代碼 <script src=https://www.cnblogs.com/szharf/p/"js/jquery-3.4.1.min.js"></script> <div id="navigate"> <ul> <li class="labels labels_1"> ......

    uj5u.com 2020-09-10 04:38:47 more
  • 頁面為要加<!DOCTYPE html>

    最近因為寫一個js函式,需要用到$(window).height(); 由于手寫demo的時候,過于自信,其實對前端方面的認識也不夠體系,用文本檔案直接敲出來的html代碼,第一行沒有加上<!DOCTYPE html> 導致了$(window).height();的結果直接是整個document的高 ......

    uj5u.com 2020-09-10 04:38:52 more
  • WordPress網站程式手動升級要做好資料備份

    WordPress博客網站程式在進行升級前,必須要做好網站資料的備份,這個問題良家佐言是遇見過的;在剛開始接觸WordPress博客程式的時候,因為升級問題和博客網站的修改的一些嘗試,良家佐言是吃盡了苦頭。因為購買的是西部數碼的空間和域名,每當佐言把自己的WordPress博客網站搞到一塌糊涂的時候 ......

    uj5u.com 2020-09-10 04:39:30 more
  • WordPress程式不能升級為5.4.2版本的原因

    WordPress是一款個人博客系統,受到英文博客愛好者和中文博客愛好者的追捧,并逐步演化成一款內容管理系統軟體;它是使用PHP語言和MySQL資料庫開發的,用戶可以在支持PHP和MySQL資料庫的服務器上使用自己的博客。每一次WordPress程式的更新,就會牽動無數WordPress愛好者的心, ......

    uj5u.com 2020-09-10 04:39:49 more
  • 使用CSS3的偽元素進行首字母下沉和首行改變樣式

    網頁中常見的一種效果,首字改變樣式或者首行改變樣式,效果如下圖。 代碼: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, ......

    uj5u.com 2020-09-10 04:40:09 more
  • 關于a標簽的講解

    什么是a標簽? <a> 標簽定義超鏈接,用于從一個頁面鏈接到另一個頁面。 <a> 元素最重要的屬性是 href 屬性,它指定鏈接的目標。 a標簽的語法格式:<a href=https://www.cnblogs.com/summerxbc/p/"指定要跳轉的目標界面的鏈接">需要展示給用戶看見的內容</a> a標簽 在所有瀏覽器中,鏈接的默認外觀如下: 未被訪問的鏈接帶 ......

    uj5u.com 2020-09-10 04:40:11 more
  • 前端輪播圖

    在需要輪播的頁面是引入swiper.min.js和swiper.min.css swiper.min.js地址: 鏈接:https://pan.baidu.com/s/15Uh516YHa4CV3X-RyjEIWw 提取碼:4aks swiper.min.css地址 鏈接:https://pan.b ......

    uj5u.com 2020-09-10 04:40:13 more
  • 如何設定html中的背景圖片(全屏顯示,且不拉伸)

    1 <style>2 body{background-image:url(https://uploadbeta.com/api/pictures/random/?key=BingEverydayWallpaperPicture); 3 background-size:cover;background ......

    uj5u.com 2020-09-10 04:40:16 more
  • Java學習——HTML詳解(上)

    HTML詳解 初識HTML Hyper Text Markup Language(超文本標記語言) 1 <!--DOCTYPE:告訴瀏覽器我們要使用什么規范--> 2 <!DOCTYPE html> 3 <html lang="en"> 4 <head> 5 <!--meta 描述性的標簽,描述一些 ......

    uj5u.com 2020-09-10 04:40:33 more
最新发布
  • 我的第一個NPM包:panghu-planebattle-esm(胖虎飛機大戰)使用說明

    好家伙,我的包終于開發完啦 歡迎使用胖虎的飛機大戰包!! 為你的主頁添加色彩 這是一個有趣的網頁小游戲包,使用canvas和js開發 使用ES6模塊化開發 效果圖如下: (覺得圖片太sb的可以自己改) 代碼已開源!! Git: https://gitee.com/tang-and-han-dynas ......

    uj5u.com 2023-04-20 07:59:23 more
  • 生產事故-走近科學之消失的JWT

    入職多年,面對生產環境,盡管都是小心翼翼,慎之又慎,還是難免捅出簍子。輕則滿頭大汗,面紅耳赤。重則系統停擺,損失資金。每一個生產事故的背后,都是寶貴的經驗和教訓,都是專案成員的血淚史。為了更好地防范和遏制今后的各類事故,特開此專題,長期更新和記錄大大小小的各類事故。有些是親身經歷,有些是經人耳傳口授 ......

    uj5u.com 2023-04-18 07:55:04 more
  • 記錄--Canvas實作打飛字游戲

    這里給大家分享我在網上總結出來的一些知識,希望對大家有所幫助 打開游戲界面,看到一個畫面簡潔、卻又富有挑戰性的游戲。螢屏上,有一個白色的矩形框,里面不斷下落著各種單詞,而我需要迅速地輸入這些單詞。如果我輸入的單詞與螢屏上的單詞匹配,那么我就可以獲得得分;如果我輸入的單詞錯誤或者時間過長,那么我就會輸 ......

    uj5u.com 2023-04-04 08:35:30 more
  • 了解 HTTP 看這一篇就夠

    在學習網路之前,了解它的歷史能夠幫助我們明白為何它會發展為如今這個樣子,引發探究網路的興趣。下面的這張圖片就展示了“互聯網”誕生至今的發展歷程。 ......

    uj5u.com 2023-03-16 11:00:15 more
  • 藍牙-低功耗中心設備

    //11.開啟藍牙配接器 openBluetoothAdapter //21.開始搜索藍牙設備 startBluetoothDevicesDiscovery //31.開啟監聽搜索藍牙設備 onBluetoothDeviceFound //30.停止監聽搜索藍牙設備 offBluetoothDevi ......

    uj5u.com 2023-03-15 09:06:45 more
  • canvas畫板(滑鼠和觸摸)

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>canves</title> <style> #canvas { cursor:url(../images/pen.png),crosshair; } #canvasdiv{ bo ......

    uj5u.com 2023-02-15 08:56:31 more
  • 手機端H5 實作自定義拍照界面

    手機端 H5 實作自定義拍照界面也可以使用 MediaDevices API 和 <video> 標簽來實作,和在桌面端做法基本一致。 首先,使用 MediaDevices.getUserMedia() 方法獲取攝像頭媒體流,并將其傳遞給 <video> 標簽進行渲染。 接著,使用 HTML 的 < ......

    uj5u.com 2023-01-12 07:58:22 more
  • 記錄--短視頻滑動播放在 H5 下的實作

    這里給大家分享我在網上總結出來的一些知識,希望對大家有所幫助 短視頻已經無數不在了,但是主體還是使用 app 來承載的。本文講述 H5 如何實作 app 的視頻滑動體驗。 無聲勝有聲,一圖頂百辯,且看下圖: 網址鏈接(需在微信或者手Q中瀏覽) 從上圖可以看到,我們主要實作的功能也是本文要講解的有: ......

    uj5u.com 2023-01-04 07:29:05 more
  • 一文讀懂 HTTP/1 HTTP/2 HTTP/3

    從 1989 年萬維網(www)誕生,HTTP(HyperText Transfer Protocol)經歷了眾多版本迭代,WebSocket 也在期間萌芽。1991 年 HTTP0.9 被發明。1996 年出現了 HTTP1.0。2015 年 HTTP2 正式發布。2020 年 HTTP3 或能正... ......

    uj5u.com 2022-12-24 06:56:02 more
  • 【HTML基礎篇002】HTML之form表單超詳解

    ??一、form表單是什么

    ??二、form表單的屬性

    ??三、input中的各種Type屬性值

    ??四、標簽 ......

    uj5u.com 2022-12-18 07:17:06 more