QML使用Timer使用定时器
Timer
计时器可用于触发操作一次,或以给定的间隔重复触发。
常用属性:
interval | 设置触发器之间的间隔(以毫秒为单位)。 默认间隔为 1000 毫秒。 |
repeat | 设置重复,为真,则以指定的间隔重复触发计时器 默认为(false) |
running | 设置启动,true为启动,false(默认) |
triggeredOnStart | 触发启动 |
信号:
triggered() | 触发时,发出该信号 |
函数方法:
restart() | 重新启动 |
start() | 开启 |
stop() | 暂停 |
设置单次的定时器:
Text{
id:text1
x:100
y:100
text:"null"
font.pixelSize: 20//设置字体大小
}
Timer{
interval: 2000//2秒
running: true//开启
onTriggered:text1.text=Date().toString();//设置时间
}
初始状态: 两秒后:
持久的定时器:
Text{
id:text1
x:100
y:100
text:"null"
font.pixelSize: 20//设置字体大小
}
Timer{
interval: 2000//2秒
running: true//开启
repeat: true //开启以指定的间隔重复触发计时器
onTriggered:text1.text=Date().toString();
}
triggeredOnStart的使用:
简单的讲:
- 如果开启triggeredOnStart,则开始时会先执行一次,然后等待时间间隔
- 如果关闭triggeredOnStart,则需要先等待时间间隔,然后才会执行
不开启triggeredOnStart:
Text{
id:text1
x:100
y:100
text:"null"
font.pixelSize: 20//设置字体大小
}
Timer{
interval: 1000//1秒
running: true//开启
repeat: true //开启以指定的间隔重复触发计时器
onTriggered:text1.text=Date().toString();
}
初始状态为:
开启triggeredOnStart:
Text{
id:text1
x:100
y:100
text:"null"
font.pixelSize: 20//设置字体大小
}
Timer{
interval: 1000//1秒
running: true//开启
repeat: true //开启以指定的间隔重复触发计时器
triggeredOnStart: true
onTriggered:text1.text=Date().toString();
}
初始状态为:
函数的使用:
创建3个Rectangle,分别对应 开启定时器,暂停定时器,重启定时器,鼠标点击分别执行相应的函数。
Text{
id:text1
x:100
y:100
text:"null"
font.pixelSize: 20//设置字体大小
}
Timer{
id:time1
interval: 1000//1秒
repeat: true //开启以指定的间隔重复触发计时器
triggeredOnStart: true
onTriggered:text1.text=Date().toString();
}
Row{
y:200
Rectangle{
id:rect1
width: 100;height: 100
MouseArea{
anchors.fill:parent
onPressed:{
time1.start()//开启定时器
}
}
Text{
anchors.fill:parent
text: "开启定时器"
font.bold: true
}
}
Rectangle{
id:rect2
width: 100;height: 100
MouseArea{
anchors.fill:parent
onPressed:{
time1.stop()//暂停定时器
}
}
Text{
anchors.fill:parent
text: "暂停定时器"
font.bold: true
}
}
Rectangle{
id:rect3
width: 100;height: 100
MouseArea{
anchors.fill:parent
onPressed:{
time1.restart()//重新开启定时器
}
}
Text{
anchors.fill:parent
text: "重新开启定时器"
font.bold: true
}
}
}