美文网首页
小白学qml 6

小白学qml 6

作者: 技术喵 | 来源:发表于2019-07-09 07:31 被阅读0次

状态与过渡( States and Transitions)

除了Animation还有一种方法可以做出动画效果,那就是状态+过渡

状态( States)

在QML中, 使⽤State元素来定义状态, 需要与基础元素对象( Item) 的states序列属性连接。 状态通过它的状态名来鉴别, 由组成它的⼀系列简单的属性来改变元素。

例子中,点击鼠标,可以切换状态,不同状态控制不同的属性值

//状态与过渡
    Item{
        id: itemState
        anchors.fill: parent

        Image{
            id: imgState1
            source: "qrc:/meng.png"
        }

        MouseArea{
            anchors.fill: parent
            onClicked: {
                //切换状态
                if(itemState.state == "go"){
                    itemState.state = "back"
                }
                else{
                    itemState.state = "go"
                }
            }
        }

        //初始化
        state: "back"

        states: [
            //状态-go
            State {
                name: "go"
                PropertyChanges {target: imgState1; x: 300; }
            },
            //状态-back
            State {
                name: "back"
                PropertyChanges {target: imgState1; x: 0; }
            }
        ]
    }
0_1527650315878_20180530_111751.gif

过渡( Transitions)

只有状态的切换,画面只有闪现效果,要想有动画效果,需要加过渡

例子中,根据迁移的状态不同,添加了不同的过渡时间

transitions: [
            Transition {
                from: "back"; to: "go"
                NumberAnimation { target: imgState1; property: "x"; duration: 2000}
            },
            Transition {
                to: "back"
                NumberAnimation { target: imgState1; property: "x"; duration: 300}
            }
        ]
0_1527650734088_20180530_112505.gif

源代码

Fork me on Gitee

相关文章

  • 小白学qml 6

    状态与过渡( States and Transitions) 除了Animation还有一种方法可以做出动画效果,...

  • 小白学qml 2

    qml语法 QML是⼀种描述⽤户界⾯的声明式语⾔。 它将⽤户界⾯分解成⼀些更⼩的元素, 这些元素能够结合成⼀个组件...

  • 小白学qml 3

    简单的转换( Simple Transformations) QML元素对象通常能够被平移, 旋转, 缩放。 简单...

  • 小白学qml 1

    前言 作为小白,学习qml真的是非常的简单,快速。 Qt Quick是Qt5中⽤户界⾯技术的涵盖。 Qt Quic...

  • 小白学qml 4

    布局元素( Layout Items) QML使⽤anchors( 锚) 对元素进⾏布局。 anchoring( ...

  • 小白学qml 5

    动画( Animations) 动画被⽤于属性的改变。 ⼀个动画定义了属性值改变的曲线, 将⼀个属性值变化从⼀个值...

  • Record one usage of 'qml signal'

    ArMap.qml ArCanvas.qml

  • QML Loader使用

    能在qml组件需要的时候再创建,即延迟创建QML的时间,类似ios懒加载 main.qml page1.qml p...

  • QML 组件

    参考:QML Tutorial 2 - QML Components - Qt for Python[https:...

  • C++调用QML代码

    C++调用QML实际上就是通过 QML 对象的指针去访问QML对象的属性和方法 只要获取到QML对象的指针,接下来...

网友评论

      本文标题:小白学qml 6

      本文链接:https://www.haomeiwen.com/subject/aieihctx.html