二选一的时候到了,Qt Widgets 还是 Qt Quick ? 致Qt开发伙伴
提示:文章寫完后,目錄可以自動生成,如何生成可參考右邊的幫助文檔
文章目錄
- 前言
- 一、Qt QWidgets 和 Qt Quick 各自有什么特性、特點?
- 1.Qt QWidgets
- 2.Qt Quick
- 二、開發一款軟件,選用Qt QWidgets 還是 Qt Quick??
- 如何選擇
- 總結
前言
我們都知道,我們網校的大部分PC客戶端軟件都是采用基于Qt的應用程序開發框架來實現的。其中,對于客戶端軟件,全部或部分使用Qt Widgets控件進行界面開發展示。所以,現在幾乎所有的PC端開發伙伴都知道Qt QWidgets是什么,對基于Qt QWidgets 開發界面程序的流程也都熟稔于心。
但是從Qt 4.7開始,引入了Qt Quick技術,在Qt 5之前,Qt Quick 作為一個新興的技術,加上當時有各種不完善,所以并沒有成為主流的開發框架。但隨著 Qt5 的到來,Qt Quick 也進行了很多優化和改進,也發布了Qt Quick 2.0。越來越多的項目也開始選擇 Qt Quick 作為開發首選項,而不是Qt QWidgets。
現在很多Qt的初學者、熟練使用Qt QWidgets開發老師甚至有使用Qt Quick 開發經驗的老師,對于Qt Quick到底是什么,和 Qt QWidgets有什么區別?對于新學者應該學習哪一種?項目中應該選用Qt QWidgets 還是 Qt Quick 這些問題,一時也分的不是特別清楚,也講得不是特別明白。
提示:以下是本篇
今天我們就一起探討一下上面那些問題,重點弄清楚兩個問題:
1. Qt QWidgets 和 Qt Quick 各自有什么特性、特點?
2. 開發一款軟件的時候,我們應該選用Qt QWidgets 還是 Qt Quick 哪種技術?
為了弄清上面的問題,我們首先應該先了解Qt QWidgets 和 Qt Quick 各自都是什么?國際慣例,先上定義。我們先說一下 Qt Quick : 在官方文檔里對它的描述是這樣的:
一種高級用戶界面技術,可以輕松創建供移動和嵌入式設備使用的動態觸摸式界面和輕量級應用程序。Qt Quick主要由一個改進的Qt Creator IDE(其中包含了Qt Quick設計器)、新增的簡單易學的QML語言和新加入Qt庫中名為QtDeclarative的模塊等三部分組成。這些使得QML更方便不熟悉C++的開發人員和設計人員使用。
從這個定義來看,其實Qt Quick就是Qt引入的全新的界面編程方式的通稱。在Qt 5中,Qt Quick被描述為QML類庫:Qt Quick是QML的一個數據類型和功能的標準庫,包含了可視化類型、交互類型、動畫、模型和視圖、粒子特效和渲染特效等。在QML應用程序中,可以通過一個簡單的import語句來使用該模塊提供的所有功能。
這里面又提到了 QML,那么什么是QML?
我們看一下官方對它的定義:
QML(Qt Meta-Object Language,Qt元對象語言)是一種用于描述應用程序用戶界面的聲明式編程語言。它使用一些可視組件,通過這些組件之間的交互來描述用戶界面。QML是一種高可讀性的語言,可以使組件以動態方式進行交互,并且易于復用和自定義。QML允許開發者和設計者進行聯合創作,快速創建高性能的、具有流暢的動畫效果的、極具視覺吸引力的應用程序。QML提供了一個具有高可讀性的類似 JSON 的聲明式語法,并提供了必要的 JavaScript 語句和動態屬性綁定的支持。
?在Qt 5中,QML語言和引擎框架由Qt QML模塊提供。
看完之后是不是還沒有搞清楚 什么是 Qt Quick? 甚至更迷糊了呢?哈哈,定義總是那么的生澀且難以理解,不過如果是初學者,你可以把 QML 和 Qt Quick 的關系想象成C++ 和 Qt 的關系。 如果還不理解,沒關系,往下看,等到我們把他們的特性也梳理完了,也許對你的幫助會比較大。
說完 Qt Quick 的定義之后,我們來說一下 Qt QWidgets 的定義又是什么呢?由于官方對它沒有明確的定義,大家也沒有形成一個明確的文字定義,但是有過Qt開發經驗的人,應該都明白: Qt QWidgets 就是使用Qt 提供的一些開箱既見、所見即所得的一些基礎控件,并且非常依賴主流語言(C++或Python等)API的一種界面開發框架。
一、Qt QWidgets 和 Qt Quick 各自有什么特性、特點?
好了,我們上面知道了 Qt QWidgets 和 Qt Quick 各自是什么,那么我們就可以進入第一個正題了,我們來討論一下他們各自的功能,我們先從Qt QWidgets 開始:Qt QWidgets 和 Qt Quick 的特性,先總結一下Qt QWidgets:
1.Qt QWidgets
2.Qt Quick
二、開發一款軟件的時候,我們應該選用Qt QWidgets 還是 Qt Quick 哪種技術?
二、如何選擇
通過上面的總結,我們知道了Qt QWidgets 和 Qt Quick 的各自特性之后,我們可以討論第二個問題了 “開發一款軟件的時候,我們應該選用Qt QWidgets 還是 Qt Quick 哪種技術?”
其實我們發現針對桌面系統軟件開發的時候,用Qt QWidget 還是 Qt Quick, 其實是根據我們軟件的需求來決定的。一般有一下幾點建議:
總結
到這里,我們就把今天重點討論的兩個問題說明白了,再總結一下,就是
1. Qt QWidgets 和 Qt Quick 都是跨平臺的,相對而言,Qt QWidgets 是一種更老、更成熟的框架(方案),Qt Quick 則更新,更現代一些。
2. 想要快速簡單的構建一個無需絢麗動畫的傳統桌面程序,優先使用Qt QWidgets。
3. 想要絢麗界面和動畫,或者移動端程序、跨平臺程序建議優先使用Qt Quick。
隨著Qt Quick的持續發展,未來的桌面開發程序,會越來越多的使用Qt Quick 技術的,希望各位老師有空也能夠多學習一下相關知識。
總結
以上是生活随笔為你收集整理的二选一的时候到了,Qt Widgets 还是 Qt Quick ? 致Qt开发伙伴的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C语言中怎么表示派 -π
- 下一篇: 历尽千帆过尽,归来,又是一年毕业季