我有一个ListView,其代表是一个红色按钮。当按钮的颜色发生变化时,我希望程序动态创建一个定时器(特定于该代表),该定时器在5秒后再次将颜色设置为红色。然后我想让程序销毁计时器。我该怎么做?QML - 发生事件时动态创建定时器
这里是我的实际代码:
ListView {
id: myListView
model: myListModel
anchors.fill: parent
anchors.leftMargin: 20; anchors.rightMargin: 20
orientation: Qt.Vertical
clip: true
spacing: 8
delegate: Button {
id: myDelegate
property int myDelegateIndex: index + 1
width: 100; height: 50
text: "Push"
background: Rectangle {
id: myDelegateBackground
color: "red"
onColorChanged: {
myTimer.start();
}
}
Timer {
id: myTimer
interval: 5000
running: true
repeat: true
onTriggered: {
myDelegateBackground.color = "red";
}
}
}
}
谢谢大家了很多!
为什么要在使用它之后销毁计时器?为什么不把“repeat”属性设置为false,然后它只会触发一次。也将“running”设置为false,以便在按下按钮之前不会启动。当代理被销毁时,Timer组件将被销毁,你不需要手动去做 –