QMLの基本コンポーネント(QtQuick 2.0)にはTimerが含まれています。これ自体が描画されることはありませんが、QMLコンポーネントに含めることで一定時間間隔での関数の実行が行えます。
timer.qml
import QtQuick 2.9
import QtQuick.Window 2.2
import QtQuick.Controls 1.0
Window {
visible: true
width: 640
height: 480
title: qsTr("Timer")
Timer{
id:tm
// triggeredを呼び出す間隔(ミリ秒)
interval: 200
// イベントを繰り返し発生させるか
repeat: true
// タイマーの呼び出し
onTriggered:{
rc.x++; // 200msごとに矩形を1ピクセル右へ移動
}
}
Rectangle{
id:rc
color: "blue"
x:0; y:0; width:100; height: 100;
}
Button{
text: "Start"
onClicked: {
// タイマーが実行中でなければstart()で開始
// 実行中ならstop()で停止
if(tm.running == false){
tm.start();
this.text = "Stop";
}else {
tm.stop();
this.text = "Start";
}
}
}
}