J'ai un écran avec des rectangles qui peuvent contenir du texte. Le contenu du texte de ces rectangles devrait être autorisé à changer en cliquant sur les boutons de l'écran où ce composant est utilisé. Le problème que j'ai est comment savoir dans l'écran qui utilise ce composant quelle instance est sélectionnée. J'ai pensé à résoudre cela en émettant un signal, qui transmet l'identifiant de l'instance comme référence, mais il semble que cela ne fonctionne pas. Comment cela pourrait-il être accompli? Voici mon composant rectangle personnaliséQt QML: Référence à l'objet qui émet un signal
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)
}
}
}
et ici le fichier où les autres boutons doivent modifier le contenu du composant personnalisé:
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)
}
}
Merci beaucoup! – numberCruncher