前面介绍了用C++定义QML类型,通常在使用Qt Quick开发项目时,C++定义后端数据类型,前端则完全使用QML实现。而QML类型或Qt Quick中的类型时不免需要为对象增加一些属性,本篇就来介绍如何自定义属性。
1. 创建项目,并编辑Main.qml
import QtQuickWindow {width: 640height: 480visible: truetitle: qsTr("Hello World")MouseArea {anchors.fill: parentonClicked: {sender.aInt += 1}}Item {id: senderproperty int aIntonAIntChanged:() => {console.log("Sender Now aInt is :", aInt)}}Item {id: receiverConnections {target: senderfunction onAIntChanged(message : string) {console.log("Receiver Now aInt is :", sender.aInt)}}}
}
- 在sender对象中通过关键字property创建了一个int类型的aInt属性
- 定义属性后QML会自动定义一个槽名为onXXXXChanged。因此结合上篇介绍的槽的相关内容,我们就可以在本对象和其他对象中监控自定义属性的变化了
2. 执行程序
在窗口中点击鼠标便可以在Qt Creator中看到如下Log了