0
다른 구성 요소에서 사용하기 위해 QML에서 일반 버튼을 정의하려고합니다. 객체에 대해 onCLick
메소드를 호출하고 해당 ID를 함수에 전달해야합니다. id 부분을 제외한 모든 것이 작동합니다.QML의 객체 id에 대한 참조
:
Rectangle {
width: 100
height: 20
color: "#d1d7f5"
radius: 10
property string btnText
MouseArea {
anchors.fill: parent
onPressed: parent.color = "#645fa9"
onReleased: parent.color = "#d1d7f5"
onClicked: {
context.onClicked(this.id) /// This is the line of problem
}
}
border.color: "#645fa9"
border.width: 2
Text {
id: textBtn
anchors.horizontalCenter: parent.horizontalCenter
anchors.verticalCenter: parent.verticalCenter
color: "#2e3b7f"
text: parent.btnText
font.bold: true
font.family: "Verdana"
font.pixelSize: 30
}
}
버튼은이 같은 다른 QML 파일에 사용할 수 있습니다
Button {
id: button1
x: 141
y: 30
btnText: "A Button"
}
파이썬 내가 신호를 수신하는 데 사용은 여기 :
class Context(QObject):
@Slot(object)
def onClicked(self, btn):
print btn
버튼을 클릭하면 None
이 인쇄됩니다. this.id
이 문자열로 대체되면 문자열을 인쇄합니다. 또한 Rectangle
에 id
속성을 부여하려고 시도했지만 작동하지 않았습니다.
이것은 내가 생각해 낸 해결책이었습니다. jus는 더 똑똑한 무엇인가를 바랐습니다. – CodeTower