0%

Timer属性说明

Timer用于触发一次动作,或者以给定的间隔重复触发动作。

本文: https://www.lovejia.win/blog/article/Timer.html
参考原文:http://doc.qt.io/qt-5/qml-qtqml-timer.html
参考译文:http://blog.csdn.net/xuqiang918/article/details/51669981

属性说明

interval : int

设置触发器之间的间隔(以毫秒为单位)。
默认间隔为1000毫秒。

repeat : bool

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

running : bool

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

triggeredOnStart : bool

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

信号说明

triggered()

该信号在定时器超时时发出。
相应的处理程序是onTriggered。

方法说明

restart()

重新启动计时器
如果定时器没有运行,它将被启动,否则它将被停止,复位到初始状态并启动。在running下面的一个呼叫属性将是真实的restart()。

start()

启动定时器
如果计时器已经运行,调用此方法没有效果。在running下面的一个呼叫属性将是真实的start()。

stop()

停止定时器
如果定时器没有运行,调用这个方法没有效果。running调用后,该属性将为false stop()。

功能简述

Timer用于触发一次动作,或者以给定的间隔重复触发动作。
计时器类型与动画计时器同步。由于动画定时器通常设置为60fps,定时器的分辨率最多为16ms。
如果定时器正在运行且其某个属性已更改,则已用时间将被重置。例如,如果具有1000ms间隔的定时器在启动后其重复属性改变500ms,则所经过的时间将被复位为0,并且定时器将在1000ms后被触发。

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

1
2
3
4
5
6
7
8
9
import QtQuick 2.0
Item {
Timer {
interval: 500; running: true; repeat: true
onTriggered: time.text = Date().toString()
}

Text { id: time }
}

以下示例定时器Timer:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
Rectangle{
width:300;
height:400;
id:root;
color:"green";
QtObject {
id:attr;
property int counter;
Component.onCompleted: {
attr.counter = 10;
}
}
Text {
id: countShow;
text: qsTr("倒计时");
anchors.centerIn: parent;
color: "blue";
font.pointSize: 24;
}
Timer {
id:countDowm;
repeat: true;
interval: 1000;
triggeredOnStart: true;
onTriggered: {
countShow.text = attr.counter;
attr.counter--;
if(attr.counter < 0)
{
countDowm.stop();
countShow.text = "Clap Now !";
}
}
}
Button {
id :textButton;
text: "开始";
anchors.top: countShow.bottom;
anchors.topMargin: 10;
anchors.horizontalCenter: parent.horizontalCenter;
onClicked: {
attr.counter = 10;
countDowm.start();
}
}
}
------本文结束    感谢阅读------
你打赏你的,我分享我的!