QML基礎 QML物件型別介紹

2021-10-08 03:29:40 字數 985 閱讀 7843

用了n年的qwidget,因為專案需求而開始學習qml做一些動態的介面,下面開始記錄學習qml的新路歷程。

注:學習有誤的望指點一二,不喜勿噴!!!

用語法術語來說,qml物件型別是一種可以用來宣告物件的方法,方法是指定型別每次,後跟一組包含該物件屬性的花括號。這與基本型別不同,基本型別不能以該方式使用。

例如:rectangle是qml物件型別,可用於建立rectangle型別的物件。像int和bool這種基本型別只能保持簡單的資料型別,而不是物件。

通過qml文件定義物件型別

開發人員通過建立qml檔案來定義乙個新的物件型別,該型別由檔名標識(不帶副檔名)。

例如:乙個檔名為button.qml的檔案,它對應的型別為button,該定義可以在qml應用程式中使用。

注意:在通過建立qml檔案來實現自定義物件型別時,檔名稱首字元必須大寫(本人在測試時不知道該知識導致花了幾個小時去解決,心累!)

通過元件定義匿名型別

在qml中建立物件型別的另一種方法是使用component型別。其允許在qml文件中內聯定義型別,而不是使用單獨的.qml檔案來定義型別。

item 

}component.oncompleted: )

}}

上面的**中,mycomponent物件本質上定義了乙個匿名型別,可以使用component::createobject例項化該匿名型別以建立物件。

請注意,每個component物件宣告都會建立自己的元件範圍。在component物件宣告中使用和引用的任何id值在該範圍內必須是唯一的,但在宣告內聯元件的文件中不必唯一。因此,在mycomponent物件宣告中宣告的rectangle可以使用root作為id值,而不會與同一文件中為item物件宣告的root衝突,因為這兩個id值是在不同的元件範圍宣告的。

通過c++定義物件型別

詳細請看下一章

QML基礎 QML屬性繫結(Binding

用了n年的qwidget,因為專案需求而開始學習qml做一些動態的介面,下面開始記錄學習qml的新路歷程。注 學習有誤的望指點一二,不喜勿噴!屬性繫結就是建立目標物件對其他物件的依賴關係,當其他物件值發生改變時,目標物件也會改變,自動更新屬性,達到動態屬性的效果。textedit當text發生改變時...

註冊QML型別

使用qmlregistertype可以將其註冊到qml型別系統。qmlregistertype函式需要乙個合適的命名空間和乙個版本號 如下面的 將message類註冊到命名空間org.qter.messaging,版本號為1.0 message有2個屬性author creationdate qml...

QML基礎 QML國際化 中文示例

在qt的pro檔案中首先加入以下幾行 config localize deployment symbian supported languages zh cn symbian lang.zh cn 31 translations displaychinese zh cn.ts 其中config lo...