漫談QML

                               漫談 QML/Qt Quick

       QML是從Qt 4.7開始引入的,QML是一種聲明語言,使得可以像設計師思考的一樣編碼,並且Qt Quick元素就是應用程序的編譯單元,每一幀的故事板被聲明爲元素樹中的一個分支,每一個視覺方面的分支元素的屬性被聲明爲一幀,每幀之間的過渡可裝飾各種動畫和特效。

       Qt Quick運行時實現了UI並且提供直接訪問本地API的功能,並且在適當的時候可以使用C++擴展獲取更好的性能。由於Qt Quick的運行時也是在Qt內部實現的,所以可以十分簡單的做到跨平臺。

       Qt是爲現代產品開發方式所構建的。核心的邏輯部分由開發者編碼並優化,用戶界面由設計師通過可視化工具完成。Qt也集成了工具,支持這種方式的迭代開發。

       Qt Quick是構建在強大的Qt之上。QML可以用來擴展已經存在的應用或者是構建全新的應用。QML是完全從C++擴展而來的。

      QML文檔在硬盤或者是網絡資源上生成純文本文件,但是也可以通過文本數據構造。

      我們來看看一個簡單的QML文件的格式:


        再來看看效果:


          其實QML只是一種語言,它主要是定義了QML文件的語法,以及QML語言的基本實現。而Qt Quick內置很多常用的元素,使得我們可以很方便的使用。我個人將QML和Qt Quick的關係類比編程語言和編程框架(或者函數庫)。

        Qt Quick內置了很多常用的可視化元素,主要如下圖:


         Qt Quick也提供了對動畫,以及模型/視圖編程,以及數據存儲等方面的支持。

         下面我們來看看Qt 提供的文檔對QML和Qt Quick的介紹。

首先是QML:

        Qt QML模塊爲使用QML語言開發應用程序提供了框架和庫。它定義並實現了語言以及引擎,並且提供了API使得應用程序開發者可以使用自定義類型擴展QML語言,並且將QML代碼和JavaScript,C++集成。

        Qt QML模塊提供了QtQml QML模塊,該模塊提供了一系列核心的QML類型,用於創建QML應用;也提供了QtQml C++模塊,該模塊提供了一系列的C++ API用於使用自定義類型擴展QML應用,並且將C++實現集成到QML應用程序中。

         QML模塊提供的QML類型:


         QML模塊提供的C++ API:


        注意:Qt QML模塊只提供語言以及QML的基本實現,並不提供一個可視化的畫布或者渲染引擎用於創建用戶界面。這兩個部分都是由Qt Quick提供的Qt Quick提供了許多組件,模型/視圖支持,動畫框架並且許多用於創建用戶界面的QML細節。

再來看看Qt Quick:

        Qt Quick是用於創建QML應用程序的標準庫。Qt QML模塊提供QML的引擎以及語言基礎,Qt Quick模塊提供QML創建基本用戶界面的常用元素。它提供了可視化的畫布用於創建和繪製可視化組件,接受用戶輸入,創建數據模型,視圖以及代理。

        Qt Quick模塊提供了QtQuick QML模塊,該模塊提供了一系列用於創建用戶界面的QML類型;也提供QtQuick C++模塊,該模塊提供一系列C++ API用於集成用戶界面和QtQuick QML模塊

        Qt Quick提供的基本QML類型:


          Qt Quick提供的C++ API:



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章