C
Qt Quick Ultralite sprite_animations Example
// Copyright (C) 2024 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial
import QtQuick 2.15
import QtQuickUltralite.Extras 2.0
Rectangle {
color: "black"
AnimatedSpriteDirectory {
id: sprite
anchors.centerIn: parent
sourcePath: "qt-image-sequence"
frameDuration: 80
loops: AnimatedSprite.Infinite
readonly property int frameCount: 16
onFinished: {
txtMsg.text = "Finished"
}
onRunningChanged: {
if (sprite.running) {
txtMsg.text = ""
}
}
MouseArea {
anchors.fill: parent
onClicked: {
if (sprite.running) {
sprite.stop()
} else {
sprite.start()
}
}
}
}
Column {
id: spriteInfo
anchors.top: parent.top
anchors.left: parent.left
anchors.margins: 16
spacing: 4
Text {
id: txtFrameNo
text: "frame: " + (sprite.currentFrame + 1) + " / " + sprite.frameCount
font.pixelSize: 14
color: "white"
}
Text {
id: txtDuration
text: "duration: " + sprite.frameDuration
font.pixelSize: 14
color: "white"
}
Text {
id: txtMsg
font.pixelSize: 14
text: ""
color: "white"
}
}
ToggleButton {
id: toggleLoops
width: parent.width / 4
height: parent.height / 9
anchors.right: parent.right
anchors.top: parent.top
anchors.margins: 8
checkedText: "Infinite"
uncheckedText: "Once"
onCheckedChanged: {
if (toggleLoops.checked) {
sprite.loops = AnimatedSprite.Infinite
} else {
sprite.loops = 1
}
}
}
}