【问题标题】:Qt GUI animations?Qt GUI 动画?
【发布时间】:2016-12-12 06:58:56
【问题描述】:

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

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

----

(它需要逐渐扩展,动画方面,如下)

提前谢谢大家。

【问题讨论】:

  • 我尝试使用 while 循环和线程等待来调整它的大小,但如果我必须绝对诚实的话,它看起来相当不稳定而且相当垃圾......

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


【解决方案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
        }
    }
}

【讨论】:

    【解决方案2】:

    如果您不使用 QML,您需要使用某种技巧,在您自己的事件触发的循环中减少/增加小部件的大小。缓动曲线可以帮助你达到平滑的效果https://doc.qt.io/qt-5/qeasingcurve.html.

    【讨论】:

    • 我正在使用 QML。 :)
    • 另外,我在写问题之前看过这个,并不是我真正想要的东西。
    猜你喜欢
    • 2010-10-15
    • 1970-01-01
    • 1970-01-01
    • 2016-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-20
    • 2011-08-23
    相关资源
    最近更新 更多