日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

QML类型系统

發布時間:2025/1/21 windows 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 QML类型系统 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言

前一篇文章已經介紹了 QML 的基本類型,這里來介紹 QML 類型系統,包含了所有的在 QML 中可使用的類型。
可以再 QML 中使用的類型包含以下幾種:

由 QML 語言提供的基本類型
從 C++中注冊成 QML 可用的類型
由 QML 模塊提供的類型

無論類型定義來自何處,引擎都將對屬性和這些類型的實例強制執行類型安全檢查。

基本類型

QML 語言內置支持各種基本類型,包含整型,浮點型,字符串以及布爾型等等,對象可以具有這些類型的屬性,并且這些類型的值可以作為參數傳遞給對象的方法使用。
關于基本類型,前面已經介紹過,文章在這里

JavaScript類型

QML引擎支持JavaScript對象和數組??梢允褂梅盒蛌ar類型創建和存儲任何標準JavaScript 類型。
例如,標準Date和Array類型可用,如下所示:

import QtQuick 2.0Item {property var theArray: []property var theDate: new Date()Component.onCompleted: {for (var i = 0; i < 10; i++)theArray.push("Item " + i)console.log("There are", theArray.length, "items in the array")console.log("The time is", theDate.toUTCString())} }

QML對象類型

QML對象類型是可以從中實例化QML對象的類型。例如,Rectangle是一種QML對象類型:它可用于創建Rectangle類型對象。這不能用諸如int和之類的原始類型來完成bool,它們用于保存簡單數據類型而不是對象。

QML對象類型派生自QtObject,由QML模塊提供。應用程序可以導入這些模塊以使用它們提供的對象類型。該QtQuick模塊提供了在QML中創建用戶界面所需的最常用對象類型。
最后,每個QML文檔都隱式定義了一個QML對象類型,可以在其他QML文檔中重用。

從QML定義對象類型

通過QML文檔定義對象類型

要創建對象類型,應將QML文檔放入名為 .qml的文本文件中,其中是所需的類型名稱。類型名稱具有以下要求:

它必須由字母數字字符或下劃線組成。
它必須以大寫字母開頭。

然后,該文檔被引擎自動識別為QML類型的定義。此外,在解析QML類型名稱時,以這種方式定義的類型會自動提供給引擎在直接目錄中搜索的同一目錄中的其他QML文件。

使用組件定義匿名類型

從QML中創建對象類型的另一種方法是使用Component類型。這允許在QML文檔中內聯定義類型,而不是在文件中使用單獨的文檔.qml。

Item {id: rootwidth: 500; height: 500Component {id: myComponentRectangle { width: 100; height: 100; color: "red" }}Component.onCompleted: {myComponent.createObject(root)myComponent.createObject(root, {"x": 200})} }

這里的myComponent對象本質上定義了一個匿名類型,可以使用Component :: createObject實例化該匿名類型以創建此匿名類型的對象。

內聯組件共享常規頂級組件的所有特征,并使用與import包含QML文檔相同的列表。

從C ++定義對象類型

C ++插件編寫者和應用程序開發人員可以通過Qt QML模塊提供的API注冊在C ++中定義的類型。存在各種注冊功能,每個功能允許實現不同的用例。有關這些注冊函數的詳細信息,以及將自定義C ++類型公開給QML的詳細信息,請參考這里。
https://blog.csdn.net/luoyayun361/article/details/80532594
https://blog.csdn.net/luoyayun361/article/details/80544906

總結

以上是生活随笔為你收集整理的QML类型系统的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。