我创建了一个自定义计时器,提供暂停功能和经过时间属性。触发后,elapsedTime
将增加'interval'属性值。我已经对其进行了测试,并且效果很好。
// CustomTimer.qml
import QtQuick 2.0
Timer {
property double elapsedTimeSec: 0.0
interval: 100
repeat: true
onTriggered: elapsedTimeSec += interval/1000
}
我将它作为单独的QML文件添加到了现有项目中。现在,我希望将动作附加到我的onTriggered
信号处理程序中,以交互和切换主应用程序中的内容。例如一些代码:
Rectangle {
Slider {
id: slider
value: 0.2
}
CustomTimer {
onTriggered: slider.value += 0.1
}
}
在不删除内部onTriggered
内部处理程序的情况下该怎么做(因为计时器处理需要这些处理程序)?
答案 0 :(得分:1)
我该怎么做而不删除已经存在的动作,因为这些动作对于计时器过程是必需的?
您不必担心。两个信号处理程序分别(理论上)同时执行。他们共存。因此,在您的代码中,将同时执行onTriggered
中的CustomTimer.qml
处理程序和嵌套在Rectangle
下的处理程序。
您关注的覆盖行为仅与属性有关。例如,下面的CustomTimer
会将计时器的间隔从100更改为500。与时隙不同,该值会传播。
Rectangle {
CustomTimer {
interval: 500
}
}