C 语言
Qt Quick Ultralite 加载器示例
/****************************************************************************** ** ** Copyright (C) 2022 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of the Qt Quick Ultralite module. ** ** $QT_BEGIN_LICENSE:COMM$ ** ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and The Qt Company. For licensing terms ** and conditions see http://www.qt.io/terms-conditions. For further ** information use the contact form at http://www.qt.io/contact-us. ** ** $QT_END_LICENSE$ ** ******************************************************************************/import QtQuick 2.15 import SettingsData import GameState Item { id: root MouseArea { id: startButton anchors.fill: parent visible: !GameState.running Text { id: startLabel anchors.centerIn: parent text: "Tap to start." font: SettingsData.smallFont } onClicked: { GameState.running = true GameState.prepareRound() GameState.roundStarted() } } Rectangle { id: colorDisplay anchors.centerIn: parent visible: false width: 100 height: width radius: 5 } Timer { id: showCardTimer interval: 150 onTriggered: { colorDisplay.visible = true } } Timer { id: colorDisplayTimer property int i: 0 interval: i === 0 ? 0 : SettingsData.colorDisplayTimeout repeat: i <= GameState.colorsQueue.size() onTriggered: { colorDisplay.visible = false if (i === GameState.colorsQueue.size()) { i = 0 GameState.takeInput = true stop() } else { colorDisplay.color = GameState.colorsQueue.at(i) showCardTimer.start() i++ } } Connections{ target: GameState function onRoundStarted() { colorDisplayTimer.start() } } } Component.onCompleted: { if (GameState.running) { colorDisplayTimer.start() } } }