QML实现渐变侧滑效果——显示和隐藏

当看到一个博文,用一个NumberAnimation实现QML实现渐变侧滑效果,从右往左出现的时候,我就想:要实现一个从右往左出现,动画结束后,点击鼠标,又从左往右隐藏。这样的时候,就可以实现一个侧边的面板,响应鼠标(或者键盘)事件,出现或者隐藏。

test.qml代码:

import QtQuick 2.0

Rectangle {
    id: root
    width: 300
    height: 500

    property bool bShowFull: false

    Rectangle {
        id: rect
        width: 200; height: parent.height
        color: "red"
    }

    NumberAnimation {
        id: animIn
        running: true
        target: rect;
        property: "x";
        from:root.width;
        to:root.width-rect.width;
        duration: 1500;
        easing.type: Easing.InOutExpo;  //Easing.InOutQuad; Easing.InOutCubic
        //loops: Animation.Infinite //Easing.InOutQuart;
    }

    NumberAnimation {
        id: animiOut
        running: false
        target: rect;
        property: "x";
        from: root.width-rect.width;
        to: root.width;
        duration: 1500;
        easing.type: Easing.InOutExpo;  //Easing.InOutQuad; Easing.InOutCubic
        //loops: Animation.Infinite //Easing.InOutQuart;
    }

    MouseArea {
        anchors.fill: parent
        acceptedButtons: Qt.LeftButton
        onClicked: {
            if (mouse.button === Qt.LeftButton) {
                if (bShowFull) {
                    animiOut.running = true;
                }else {
                    animIn.running = true;
                }
            }
        }
    }

    Connections {
        target: animIn
        onStopped: {
            console.log(" animIn stopping------------")
            bShowFull = true
        }
    }

    Connections {
        target: animiOut
        onStopped: {
            console.log("animiOut stopping------------")
            bShowFull = false
        }
    }
}

将以上代码保存为test.qml文件,用qmlscene运行。

第一次,红色矩形会从右到左出现,到达指定位置的时候,动画结束,响应onStopped信号。点击鼠标左键,红色矩形从左到右隐藏,动画结束后,再点击鼠标左键,红色矩形又从右往左出现…

运行效果:
在这里插入图片描述
参考:https://blog.csdn.net/Shado_walker/article/details/54729926

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: qml chartview是QtQuick中用于绘制图表的组件,可以通过设置属性来实现曲线的显示隐藏。 要隐藏曲线,可以通过设置chartview的visible属性为false。例如: ChartView { id: chart visible: false // 其他属性设置 } 要显示曲线,可以将visible属性设置为true。例如: chart.visible = true; 另外,如果希望在特定情况下进行曲线的显示隐藏,可以使用其他的条件判断,并通过设置visible属性来达到目的。例如: Rectangle { width: 200 height: 200 MouseArea { anchors.fill: parent onClicked: { if(chart.visible){ chart.visible = false; }else{ chart.visible = true; } } } ChartView { id: chart anchors.fill: parent // 其他属性设置 } } 以上是使用qml chartview实现曲线的显示隐藏的方法。通过设置visible属性,可以方便地控制曲线的可见性。 ### 回答2: QML的ChartView组件可以通过设置lineSeries的visible属性来控制曲线的显示隐藏。通过修改该属性,我们可以在需要的时候显示曲线并在不需要的时候隐藏曲线。 在QML中,我们可以通过以下代码隐藏显示曲线: ```qml ChartView { // ... LineSeries { visible: false // 默认情况下曲线是隐藏的 // ... } } ``` 上述代码中,我们通过将LineSeries的visible属性设置为false,来隐藏曲线。如果要显示曲线,只需将该属性设置为true即可。 另外,我们还可以通过按钮或其他交互方式来控制曲线的显示隐藏。代码示例如下: ```qml ChartView { id: chartView // ... LineSeries { id: lineSeries // ... } Button { text: lineSeries.visible ? "隐藏曲线" : "显示曲线" onClicked: lineSeries.visible = !lineSeries.visible } } ``` 上述代码中,我们创建了一个按钮,按钮的文本会根据曲线的可见性进行调整。当按钮被点击时,会切换曲线的可见性。如果曲线是可见的,则按钮的文本将显示为"隐藏曲线",并隐藏曲线。反之,如果曲线是隐藏的,则按钮的文本将显示为"显示曲线",并显示曲线。 综上所述,在QML中,我们可以通过设置LineSeries的visible属性,或者利用交互控件(如按钮)来控制ChartView中曲线的显示隐藏。 ### 回答3: 使用QML中的ChartView组件可以很容易地实现曲线的显示隐藏。 要显示曲线,首先需要创建一个ChartView,并设置曲线的属性。可以通过设置series属性来指定要显示的曲线类型,如折线图、柱状图等。 以下是一个简单的例子: ``` import QtCharts 2.15 ChartView{ id: chartView ValueAxis{ id: valueAxis } LineSeries{ name: "曲线" axisX: chartView.axisX axisY: valueAxis // 曲线的数据点 XYPoint{x: 0; y: 0} XYPoint{x: 1; y: 1} XYPoint{x: 2; y: 2} } // 更多曲线... } ``` 要隐藏曲线,可以通过设置曲线的visible属性为false来实现。 ``` LineSeries{ //... visible: false } ``` 另外,还可以使用QML中的状态(State)或者动画(Animation)来实现曲线的显示隐藏效果。例如,可以创建一个按钮,通过点击按钮来切换曲线的显示状态。 ``` Button{ text: "隐藏曲线" onClicked: { lineSeries.visible = !lineSeries.visible } } ``` 通过以上方法,我们可以方便地在QML实现曲线的显示隐藏操作。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值