确定Qt计时器触发事件​​是否是由于triggeredOnStart为真而导致的事件

时间:2015-01-05 11:00:42

标签: qt timer triggers qml

是否有一些方便的方法可以在onTriggered()中查找是否因triggeredOnStart true而被调用,而不是由于计时器超时?

医生说

  

有时希望在计时器启动时立即触发;例如,建立初始状态。

但很明显,如果您能够真正告诉它这是第一次,那么这将是最有用的,所以请进行设置。

这显然可以通过在某处设置一些状态变量并在onTriggered中更改它来手动完成,但这非常麻烦......

1 个答案:

答案 0 :(得分:2)

我认为Qt是简洁但非常有用的工具,尤其是QML。因此,您有能力使用现有设施做您想做的事情。至于你的问题,你可以使用一个现有的事件,就像你说的那样。

例如:

Timer {
    id: timer
    running: false
    interval: 1000
    triggeredOnStart: true
    onRunningChanged: {
        console.log(running)
    }
    onTriggered: {
        console.log("triggered")
    }

    Component.onCompleted: timer.running = true
}

<强>输出:

qml: true
qml: triggered
qml: false
qml: triggered