本篇文章是对来自🤝BiliBili-清晨与猫鱼的QML教程的学习笔记,原视频链接👇
https://www.bilibili.com/video/BV1Ay4y1W7xd?spm_id_from=..search-card.all.click&vd_source=4079f59f2068471b4d379822052e0270


Timer

一、描述

计时器可以用来触发一次动作,也可以在给定的时间间隔内重复触发。

这是一个显示当前日期和时间的计时器,每500毫秒更新一次文本。它使用JavaScript Date对象来访问当前时间。

1
2
3
4
5
6
7
8
9
10
import QtQuick 2.0

Item {
Timer {
interval: 500; running: true; repeat: true
onTriggered: time.text = Date().toString()
}

Text { id: time }
}

Timer
Timer类型与动画计时器同步。因为动画计时器通常设置为60fps,所以计时器的分辨率最多为16ms。
如果Timer正在运行,并且它的一个属性被更改,运行时间将被重置。例如,如果一个间隔为1000ms的Timer在启动后500ms改变了它的repeat属性,那么运行时间将被重置为0,并在1000ms后触发Timer。

二、属性

  1. interval : int

    设置触发器之间的间隔,以毫秒为单位。
    缺省值是1000毫秒。

  2. repeat : bool

    如果repeat为真,则计时器在指定的时间间隔内重复触发;否则,计时器将在指定的时间间隔触发一次,然后停止(即运行将被设置为false)。
    重复默认值为false

  3. running : bool

    如果设置为true,启动计时器;否则将停止定时器。对于非重复计时器,在计时器被触发后,运行设置为false
    Running默认为false

  4. triggeredOnStart : bool

    当计时器启动时,第一个触发器通常是在指定的时间间隔过后。有时希望在计时器启动时立即触发;例如,建立一个初始状态。
    如果triggeredOnStart为true,则计时器在启动时立即触发,然后按指定的间隔触发。注意,如果repeat被设置为false,计时器会被触发两次;一次开始,一次在间歇。
    triggeredOnStart默认为false。

三、信号

  1. triggered()

    该信号在Timer超时时发出。
    注意:对应的处理程序是onTriggered。

四、方法

  1. restart()

    重新启动定时器
    如果Timer没有运行它将被启动,否则它将被停止,重置为初始状态并启动。在调用restart()之后,running属性将为true。

  2. start()

    启动定时器
    如果计时器已经在运行,调用此方法将不起作用。在调用start()之后,running属性将为true。

  3. stop()

    停止计时器
    如果计时器未运行,调用此方法将不起作用。在调用stop()之后,running属性将为false。