Qt GUI动画?

时间:2016-12-12 06:58:56

标签: c++ qt user-interface animation qtgui

有点奇怪的问题,但我最近发现有一种方法可以为Qt GUI制作动画。我真的想找到一种方法让我的主窗口扩展成一个更大的窗口,而不是立即调整大小(这很简单)我希望看到它扩展为动画类型。更重要的是,这种动画的正确方法是什么?

我附上2张图片,显示初始窗口和最终展开的窗口(或者至少我想象的那样)。

----

enter image description here

(它需要逐渐扩展,动画明智,进入下面)

enter image description here

提前谢谢大家。

2 个答案:

答案 0 :(得分:1)

如果您不使用QML,则需要使用某种技巧,在由您自己的事件触发的循环中递减/递增窗口小部件的大小。缓和曲线可以帮助您实现平滑效果https://doc.qt.io/qt-5/qeasingcurve.html

答案 1 :(得分:1)

由于您使用的是QML,这对您来说非常简单。最简单的方法是使用behavior结合下面的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
        }
    }
}