qml 是一種聲明性語言,允許根據使用者界面的可視元件以及它們如何互相互動和互相關聯來描述使用者界面。qml 是一種高度可讀的語言,旨在使元件能夠以動态方式互連,并且允許元件在使用者界面中輕松重複使用和自定義。
使用 qt quick,開發人員可以輕松地在 qml 中建構流體動畫使用者界面,并且可以選擇将這些使用者界面連接配接到任何後端 c++ 庫。
<a href="#%e7%ae%80%e8%bf%b0">簡述</a>
<a href="#%e4%bb%80%e4%b9%88%e6%98%af-qml">什麼是 qml</a>
<a href="#%e4%bb%80%e4%b9%88%e6%98%af-qt-quick">什麼是 qt quick</a>
<a href="#qmlqt-quick-%e6%80%bb%e7%bb%93">qmlqt quick 總結</a>
<a href="#%e5%bc%80%e5%8f%91%e5%b7%a5%e5%85%b7">開發工具</a>
qml 是一種使用者界面規範和程式設計語言。它允許開發人員和設計師建立高性能、流暢的動畫和視覺吸引人的應用程式。qml 提供了一種高度可讀、聲明性、類似 json 的文法,支援與動态屬性綁定相結合的指令式 javascript 表達式。
qml 全稱:qt meta language 或 qt modelling language,主要包含以下特征:
像腳本語言一樣定義界面的元素
是對 ecmascript 标準的擴充(參見:javascript)
提供了建立一顆 qml 元素對象樹的機制
支援 qml 元素和基于 qobject 的 c++ 對象之間的互動
qml 包含了一套 qml 元素
圖形的和行為的基礎組成部分
可以通過 qml 文檔來建立更加複雜的元件和 qml 應用
可以用來對現有程式擴充,或是編譯一個全新的程式
qml 可以使用 c++ 完全擴充
qt quick 是 qml 類型和功能的标準庫。包括視覺類型、互動式類型、動畫、模型和視圖、粒子效果和着色效果,可以使用單個 import 語句通路所有功能。
qt quick 全稱:qt user interface creation kit,主要包含以下特征:
一個為建立更好的界面的進階 ui 技術
無需掌握 c++ 技術,javascript 知識會有不少幫助
針對界面設計人員和開發者
使設計師和開發人員“說同樣的語言”
雙方可以同時參與疊代開發
無需單獨的 flash 或 ppt ui 原型
設計人員用 qt quick,我猜一定是想多了,“自娛自樂”下就行!
qt 的 meta-object 系統提供了 qml 和 c++ 關聯的機制
qt 屬性機制
信号與槽機制
qml 為開發人員預定義了一套類型
可以很容易的使用 qml 進行擴充
可以使用 c++ 進行擴充
qt quick 用來為開發人員設計 qt 應用程式的可視化界面
了解 javascript(+ html + css)是學習 qml 的前提條件,雖然沒有嚴格的要求,但還是建議掌握。
qt creator 是 qt 開發的首選工具,當然,也可用于 qt quick。
qt 提供了一個 qmlscene 工具(qt 4.x 為 qmlview),用于運作單獨的 qml/javascript 程式。
讓我們可以直接檢視 qml 檔案,而不必将其加載到 qt 應用中。
主要是用于開發測試
提供了一種“dummy”機制,動态的為 qml 提供資料
最終的資料将由 qt/c++ 代碼所提供
注意:要将 qml/qt quick 界面嵌入到 qt/c++ 應用程式中,需要使用 qt4.7 及以上版本(最新官方版本 qt 5.7)。