我创建了一个自定义计时器,提供暂停函数和经过的时间属性。触发时,elapsedTime
将按"间隔"属性量递增。我已经测试过了,它工作正常。
// 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
处理程序的情况下执行此操作(因为这些是计时器进程所必需的(?
如何在不删除现有操作的情况下执行此操作,因为这些操作对于计时器过程是必需的?
你不必担心。这两个信号处理程序分别和同时执行(理论上(。它们共存。因此,在您的代码中,将同时执行 CustomTimer.qml
中的onTriggered
处理程序和嵌套在Rectangle
下的处理程序。
您关注的覆盖行为类型仅发生在属性中。例如,下面的CustomTimer
会将计时器的间隔从 100 更改为 500。与插槽不同,该值是传播的。
Rectangle {
CustomTimer {
interval: 500
}
}