我有一个可以包含文本的矩形屏幕。这些矩形的文本内容应该允许通过点击使用该组件的屏幕上的按钮来改变。我遇到的问题是如何知道在使用这个组件的屏幕上选择了哪个实例。我想通过发送一个信号来解决这个问题,该信号传输实例的id作为参考,但看起来这不起作用。这怎么可能完成?在这里我自定义的矩形组成Qt QML:获取发射信号的对象的参考
Rectangle {
id: root
width: 50
height: 50
color: "#000000"
anchors.verticalCenter: parent.verticalCenter
border.color: "#555555"
property int value: 0
signal sendId(Item)
Text {
id: displayed_text
color: "#ffffff"
text: root.value
anchors.horizontalCenter: parent.horizontalCenter
anchors.verticalCenter: parent.verticalCenter
horizontalAlignment: Text.AlignHCenter
verticalAlignment: Text.AlignVCenter
font.pixelSize: 15
}
MouseArea {
id: mouseArea
anchors.fill: parent
onClicked: {
root.border.color="#222222"
root.sendId(root.id)
}
}
}
,并在这些地方的其他按钮应该更改自定义组件的内容的文件:
property Item selected: myRectangle
function changeSelected(value) {
selected.value=5
}
function setSelected(it) {
root.selected=it
}
MyRectangle {
id: myRectangle
Component.onCompleted: {
myRectangle.sendId.connect(tempNumber.setSelected)
}
}
MyRectangle {
id: myRectangle1
Component.onCompleted: {
myRectangle1.sendId.connect(tempNumber.setSelected)
}
}
MyRectangle {
id: myRectangle2
Component.onCompleted: {
myRectangle2.sendId.connect(tempNumber.setSelected)
}
}
非常感谢! – numberCruncher