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
        }
    }
}