Qt 图形用户界面动画?
Qt GUI animations?
有点奇怪的问题,但我最近发现有一种方法可以为 Qt GUI 制作动画。我真的很想找到一种方法让我的 main window 扩展成一个更大的,而不是立即调整它的大小(这很容易做到)我希望看到它以某种方式扩展动画。更重要的是,制作此类动画的正确方法是什么?
我附上了 2 张图片,显示了最初的 window 和最后的展开图(或者至少是我的设想)。
----
(需要逐渐扩展,动画方面,如下)
提前谢谢大家。
如果您不使用 QML,则需要在由您自己的事件触发的循环中使用某种小部件 decrementing/incrementing 大小的技巧。缓动曲线可以帮助你达到平滑的效果https://doc.qt.io/qt-5/qeasingcurve.html.
由于您使用的是 QML,因此这对您来说相当简单。最简单的方法是使用下面的 behavior combined with a smoothed animation. 简单示例。
ApplicationWindow {
width: base.size
height: base.size
Item {
id: base
property real size: 400
Behavior on size {
SmoothedAnimation {
duration: 1000
}
}
anchors.fill: parent
MouseArea {
anchors.fill: parent
onClicked: base.size += 100
}
}
}
有点奇怪的问题,但我最近发现有一种方法可以为 Qt GUI 制作动画。我真的很想找到一种方法让我的 main window 扩展成一个更大的,而不是立即调整它的大小(这很容易做到)我希望看到它以某种方式扩展动画。更重要的是,制作此类动画的正确方法是什么?
我附上了 2 张图片,显示了最初的 window 和最后的展开图(或者至少是我的设想)。
----
(需要逐渐扩展,动画方面,如下)
提前谢谢大家。
如果您不使用 QML,则需要在由您自己的事件触发的循环中使用某种小部件 decrementing/incrementing 大小的技巧。缓动曲线可以帮助你达到平滑的效果https://doc.qt.io/qt-5/qeasingcurve.html.
由于您使用的是 QML,因此这对您来说相当简单。最简单的方法是使用下面的 behavior combined with a smoothed animation. 简单示例。
ApplicationWindow {
width: base.size
height: base.size
Item {
id: base
property real size: 400
Behavior on size {
SmoothedAnimation {
duration: 1000
}
}
anchors.fill: parent
MouseArea {
anchors.fill: parent
onClicked: base.size += 100
}
}
}