天天看點

QML運作環境簡述使用 QML Scene 搭建原型在應用程式中初始化 QML 運作環境

qml 文檔由 qml 運作環境加載和執行。這包括 declarative ui 引擎以及内置的 qml 類型和插件子產品,并且它還提供了對第三方 qml 類型和子產品的通路。

使用 qml 的應用程式,需要調用 qml 運作環境才能執行 qml 文檔。這可以通過建立 qquickview 或 qqmlengine 來完成。此外,declarative ui 包包含了 qmlscene 工具,用于加載 .qml 檔案。此工具對于開發和測試 qml 代碼非常有用,無需編寫 c++ 應用程式即可加載 qml 運作環境。

<a href="#%e7%ae%80%e8%bf%b0">簡述</a>

<a href="#%e4%bd%bf%e7%94%a8-qml-scene-%e6%90%ad%e5%bb%ba%e5%8e%9f%e5%9e%8b">使用 qml scene 搭建原型</a>

<a href="#%e5%9c%a8%e5%ba%94%e7%94%a8%e7%a8%8b%e5%ba%8f%e4%b8%ad%e5%88%9d%e5%a7%8b%e5%8c%96-qml-%e8%bf%90%e8%a1%8c%e7%8e%af%e5%a2%83">在應用程式中初始化 qml 運作環境</a>

<a href="#%e7%94%a8-qquickview-%e5%88%9d%e5%a7%8b%e5%8c%96">用 qquickview 初始化</a>

<a href="#%e7%9b%b4%e6%8e%a5%e5%88%9b%e5%bb%ba-qqmlengine">直接建立 qqmlengine</a>

declarative ui 包包含了一個 qml 運作時工具 - qmlscene,用于加載和顯示 qml 文檔。這在應用程式開發階段非常有用,可以針對基于 qml 的應用程式進行原型設計,而無需編寫 c++ 代碼。

例如,有一個 qml 檔案 main.qml:

運作 qmlscene 工具(位于 bin 目錄中),選擇我們的 qml 檔案。

QML運作環境簡述使用 QML Scene 搭建原型在應用程式中初始化 QML 運作環境

點選“打開”按鈕,即可運作。

QML運作環境簡述使用 QML Scene 搭建原型在應用程式中初始化 QML 運作環境

當然,也可以使用指令行運作,以 main.qml 作為參數。鍵入:

qmlscene main.qml

注意: 如果不是使用絕對路徑來執行 qmlscene,則需要在環境變量中加入其所在目錄。

要運作一個使用 qml 的應用程式,qml 運作環境必須由應用程式調用。這可以通過編寫一個 qt c++ 應用程式來完成,該程式可以通過以下兩種方式來加載 qqmlengine:

通過 qquickview 加載 qml 檔案

建立一個 qqmlengine,并使用 qqmlcomponent 加載 qml 檔案

qquickview 是一個基于 qwindow 的類,能夠加載 qml 檔案。

例如,将上述的 main.qml 加載到 qt 應用程式的 main.cpp 檔案,像這樣:

這将建立一個基于 qwindow 的視圖,來顯示 main.qml 的内容。

應用程式的 .pro 項目檔案包含了 qmake 生成 makefile(用于編譯和連結應用程式)所需的所有資訊:

如果 main.qml 中沒有任何圖形元件,或者存在其他原因希望避免使用 qquickview,可以直接構造 qqmlengine。這種情況下,main.qml 将作為一個 qqmlcomponent 執行個體被加載,而不是被放入一個 view 中:

如果不使用 qt quick 中的任何圖形項,那麼,上述代碼中的 qguiapplication 可以由 qcoreapplication 來代替。這樣以來,就可以将 qml 作為一種語言來使用,而無需依賴 qt gui 子產品。

繼續閱讀