问题:我有一个开关需要在程序启动时禁用大约50秒,然后重新启用。
当我的计时器结束时,有某种方式告诉我它已经结束,所以我可以重新启用开关?或者有没有办法在不使用计时器的情况下执行此操作。
提前致谢!
Timer {
id: delaySwitch
interval: 50000;
running: true;
repeat: false
onTriggered: {
mySwitch.enabled = false;
}
}
答案 0 :(得分:2)
禁用您的开关并使用触发信号启用它。
Switch{
id: mySwitch
enabled: false
}
Timer {
id: delaySwitch
interval: 50000;
running: true;
repeat: false
onTriggered: {
mySwitch.enabled = true;
}
}
答案 1 :(得分:1)
您可以以更具说明性的方式替代地执行此操作:
Switch {
id: mySwitch
enabled: !delaySwitch.running
}
Timer {
id: delaySwitch
interval: 50000
running: true
}
答案 2 :(得分:1)
您也可以将其作为自毁Timer
Switch {
property Timer t: timer.createObject(this)
enabled: !t
}
Component {
id: timer
Timer {
interval: 50000
running: true
onTriggered: destroy()
}
}
但是,不要问我表演的表现。
也许,如果只使用一次,Component
和Switch with property t
的新类将消耗更多内存,而不是通过销毁Timer
来释放内存。也许,如果你使用这个Switch
吨次,它可能会为你节省一些时间。但是afaik,Timer
是一个非常小的对象。