用了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...