QML - 如何将操作附加到信号处理程序



我创建了一个自定义计时器,提供暂停函数和经过的时间属性。触发时,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
    }
}

相关内容

  • 没有找到相关文章

最新更新