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