- 零基礎(chǔ)學(xué)Qt 6編程
- 霍亞飛編著
- 1466字
- 2024-09-10 16:30:22
1.1.5 Qt Quick和QML介紹
Qt Quick作為一種新的界面技術(shù),已經(jīng)經(jīng)過了十幾年的發(fā)展。對(duì)于初學(xué)者而言,其實(shí)只需要學(xué)習(xí)最新版本的Qt Quick即可。不過為了避免被一些以前的術(shù)語或概念影響,讀者可以先了解一下Qt Quick的由來和發(fā)展過程,今后如果看到一些相關(guān)名詞,知道其作用即可。
1.由來和發(fā)展
自2005年Qt 4發(fā)布以來,Qt已成功在桌面和移動(dòng)系統(tǒng)開發(fā)了眾多應(yīng)用。但是隨后幾年,計(jì)算機(jī)用戶的使用模式發(fā)生了翻天覆地的變化:用戶逐步從使用固定的PC轉(zhuǎn)換到使用便攜式計(jì)算機(jī)和現(xiàn)代移動(dòng)設(shè)備。傳統(tǒng)的桌面系統(tǒng)被越來越多的觸屏式智能手機(jī)和平板電腦所取代,經(jīng)典的窗口界面時(shí)代已經(jīng)成為過去。使用Qt的經(jīng)典C++代碼實(shí)現(xiàn)兼容不同大小屏幕的程序變得愈加困難。在這樣的背景下,急需一種全新的界面開發(fā)工具適應(yīng)現(xiàn)代化界面開發(fā)工作。
Qt 4被設(shè)計(jì)用來開發(fā)適用于所有主流平臺(tái)的桌面應(yīng)用。為了給所有的主流桌面和移動(dòng)系統(tǒng)提供基于觸摸的現(xiàn)代化用戶界面,從2010年發(fā)布的Qt 4.7開始引入了Qt Quick技術(shù)。當(dāng)時(shí)對(duì)Qt Quick的定義為:“一種高級(jí)用戶界面技術(shù),可以輕松創(chuàng)建供移動(dòng)和嵌入式設(shè)備使用的動(dòng)態(tài)觸摸式界面和輕量級(jí)應(yīng)用程序。”Qt Quick主要由一個(gè)改進(jìn)的Qt Creator IDE(其中包含了Qt Quick設(shè)計(jì)器)、新增的簡單易學(xué)的QML(Qt Meta-Object Language,Qt元對(duì)象語言)和新加入Qt庫中名為QtDeclarative的模塊等三部分組成。這些使得QML更方便不熟悉C++的開發(fā)人員和設(shè)計(jì)人員使用。
Qt 4中,QML應(yīng)用使用圖形視圖框架渲染;Qt 5則改為使用更先進(jìn)、性能更好的OpenGL場景圖架構(gòu)。由于渲染架構(gòu)的改變,Qt 5廢棄了QtDeclarative模塊,將所有Qt Quick的內(nèi)容劃分為兩個(gè)相對(duì)獨(dú)立的模塊:Qt QML和Qt Quick。基于兼容性目的,QtDeclarative模塊一開始并沒有完全移除,而是被移動(dòng)到新的Qt Quick 1模塊中。這個(gè)模塊只是為向前兼容而存在,到Qt 5.6發(fā)布時(shí)已經(jīng)被徹底移除。相對(duì)于Qt Quick 1,Qt 5中的Qt Quick模塊是2.x版本,所以也被稱為Qt Quick 2。
2.Qt 6中QML的概念
QML是一種用于描述應(yīng)用程序用戶界面的聲明式編程語言,它使用一些可視組件以及這些組件之間的交互和關(guān)聯(lián)來描述用戶界面。QML是一種高可讀性的語言,可以使組件以動(dòng)態(tài)方式進(jìn)行交互,并且組件在用戶界面中可以很容易地實(shí)現(xiàn)自定義和重復(fù)使用。QML允許開發(fā)者和設(shè)計(jì)者以類似的方式創(chuàng)建具有流暢動(dòng)畫效果、極具視覺吸引力的高性能應(yīng)用程序。
QML提供了一個(gè)具有高可讀性的類似JSON的聲明式語法,并提供了必要的JavaScript語句和動(dòng)態(tài)屬性綁定的支持。QML語言和引擎框架由Qt QML模塊提供。Qt QML模塊為QML語言開發(fā)應(yīng)用程序和庫提供了一個(gè)框架,它定義并實(shí)現(xiàn)了語言及其引擎架構(gòu),并且提供了一個(gè)接口,允許應(yīng)用開發(fā)者以自定義類型和集成JavaScript、C++代碼的方式來擴(kuò)展QML語言。Qt QML模塊提供了QML和C++兩套接口。
3.Qt 6中Qt Quick的概念
廣義上來說,Qt Quick是Qt中基于QML語言的一種用戶界面技術(shù)的統(tǒng)稱,它是QML、JavaScript和C++等多種技術(shù)的集合。具體來說,在Qt框架中Qt Quick模塊是QML類型和功能的標(biāo)準(zhǔn)庫,包含了可視化類型、交互類型、動(dòng)畫、模型、視圖、粒子特效和渲染特效等。
在QML應(yīng)用程序中,我們可以通過一個(gè)簡單的import語句來使用Qt Quick模塊提供的所有功能。Qt QML模塊提供了QML的引擎和語言基礎(chǔ),而Qt Quick模塊提供了QML創(chuàng)建用戶界面所需的所有基本類型。Qt Quick模塊提供了一個(gè)可視畫布,并提供了豐富的類型,用于創(chuàng)建可視化組件、接收用戶輸入、創(chuàng)建數(shù)據(jù)模型和視圖、生成動(dòng)畫效果等。Qt Quick模塊提供了兩種接口:使用QML語言創(chuàng)建用戶界面的QML接口和使用C++語言擴(kuò)展QML的C++接口。使用Qt Quick模塊,設(shè)計(jì)人員和開發(fā)人員可以輕松地構(gòu)建流暢的動(dòng)態(tài)式QML用戶界面,并且在需要的時(shí)候?qū)⑦@些用戶界面連接到任何C++后端。
從Qt 5.7開始,Qt Quick引入了一組界面控件,使用這些控件可以更簡單地創(chuàng)建完整的應(yīng)用界面。這些控件包含在Qt Quick Controls模塊中,包括各種窗口部件、視圖和對(duì)話框等。
- Intel Galileo Essentials
- 算法訓(xùn)練營:入門篇(全彩版)
- TypeScript圖形渲染實(shí)戰(zhàn):基于WebGL的3D架構(gòu)與實(shí)現(xiàn)
- C++新經(jīng)典
- 基于Struts、Hibernate、Spring架構(gòu)的Web應(yīng)用開發(fā)
- Access 2010中文版項(xiàng)目教程
- 小型編譯器設(shè)計(jì)實(shí)踐
- 代替VBA!用Python輕松實(shí)現(xiàn)Excel編程
- Apache Camel Developer's Cookbook
- Mastering Concurrency Programming with Java 9(Second Edition)
- Kotlin Programming By Example
- MongoDB Administrator’s Guide
- Java程序設(shè)計(jì)及應(yīng)用開發(fā)
- Python程序員面試算法寶典
- Practical Linux Security Cookbook