58 lines
1.5 KiB
QML
58 lines
1.5 KiB
QML
// Copyright (C) 2024 The Qt Company Ltd.
|
|
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
|
|
|
|
import QtQuick
|
|
import QtQuick.Shapes
|
|
|
|
Rectangle {
|
|
color: "lightGray"
|
|
width: 256
|
|
height: 256
|
|
|
|
Shape {
|
|
id: myShape
|
|
anchors.fill: parent
|
|
|
|
ShapePath {
|
|
id: myPath
|
|
strokeColor: "green"
|
|
strokeWidth: myShape.width / 25
|
|
joinStyle: ShapePath.MiterJoin
|
|
fillGradient: LinearGradient {
|
|
x2: myShape.width
|
|
y2: x2
|
|
GradientStop { position: 0.1; color: "yellow" }
|
|
GradientStop { position: 0.45; color: "lightyellow" }
|
|
GradientStop { position: 0.7; color: "yellow" }
|
|
}
|
|
|
|
property real animRadius
|
|
SequentialAnimation on animRadius {
|
|
loops: Animation.Infinite
|
|
NumberAnimation {
|
|
from: 0
|
|
to: 100
|
|
duration: 3000
|
|
}
|
|
NumberAnimation {
|
|
from: 100
|
|
to: 0
|
|
duration: 3000
|
|
}
|
|
PauseAnimation {
|
|
duration: 1000
|
|
}
|
|
}
|
|
|
|
PathRectangle {
|
|
x: myShape.width / 5
|
|
y: x
|
|
width: myShape.width - 2 * x
|
|
height: width
|
|
topLeftRadius: myPath.animRadius
|
|
bottomRightRadius: myPath.animRadius
|
|
}
|
|
}
|
|
}
|
|
}
|