Qml圆形进度按钮

作者: zhengtianzuo | 来源:发表于2018-11-29 20:36 被阅读0次

首先从方形到圆形的转变只需要更改Rectangle的radius值就行了
转变成圆形后就可以出现圆形进度条

Rectangle{
        property int btnHeight: 48
        property int btnWidth: 120

        id: cProBtn
        height: btnHeight
        width: btnWidth
        anchors.centerIn: parent
        border.color: "#148014"
        border.width: 2
        radius: 0
        Text{
            id: cText
            anchors.centerIn: parent
            font.family: "microsoft yahei"
            font.pixelSize: 14
            text: qsTr("开始")
        }
        MouseArea{
            anchors.fill: parent
            onClicked: {
                if (rAniStart.running || rAniStop.running) return
                cText.visible = false;
                rAniStart.start();
                widthAniStart.start();
            }
        }
        PropertyAnimation{
            id: rAniStart
            target: cProBtn
            property: "radius"
            duration: 300
            from: 0
            to: cProBtn.btnHeight/2
            onStopped: {
                cProgress.onStart();
                cProgress.visible = true;
            }
        }
        PropertyAnimation{
            id: widthAniStart
            target: cProBtn
            property: "width"
            duration: 300
            from: cProBtn.btnWidth
            to: cProBtn.btnHeight
        }
        QmlCircularProgress{
            id: cProgress
            anchors.centerIn: parent
            visible: false
            arcWidth: 2
            radius: cProBtn.btnHeight/2
            interval: 2
            arcColor: "#148014"
            onSStop: {
                visible = false;
                rAniStop.start();
                widthAniStop.start();
            }
        }
        PropertyAnimation{
            id: rAniStop
            target: cProBtn
            property: "radius"
            duration: 300
            from: cProBtn.btnHeight/2
            to: 0
            onStopped: {
                cText.text = qsTr("完成");
                cText.visible = true;
            }
        }
        PropertyAnimation{
            id: widthAniStop
            target: cProBtn
            property: "width"
            duration: 300
            from: cProBtn.btnHeight
            to: cProBtn.btnWidth
        }
    }
show.gif

需要完整代码请访问QtQuickExamples

相关文章

  • Qml圆形进度按钮

    首先从方形到圆形的转变只需要更改Rectangle的radius值就行了转变成圆形后就可以出现圆形进度条 需要完整...

  • Qml圆形进度条

    使用Qml的Canvas来画圆形 需要完整代码请访问QtQuickExamples

  • Qml圆形波浪进度条

    参考 Canvas制作动态进度加载水球感谢原博主的分享 需要完整代码请访问QtQuickExamples

  • Qml圆形图片

    使用QtGraphicalEffects中的OpacityMask效果: 需要完整代码请访问QtQuickExam...

  • 【QML】按钮 Button

    import QtQuick.Controls 2.5 Button 从 AbstractButton 继承其 A...

  • Flat风格的Qml单选/复选按钮

    使用Qml的RadioButton与CheckBox控件修改而成。 单选按钮 RadioButton代码 Radi...

  • iOS 各种圆形进度条

    iOS 各种圆形进度条:UAProgressView iOS手把手教你实现圆形进度条

  • CADisplayLink 动画进阶

    CADisplayLink 动画进阶 前言 之前有更新过一篇 如何实现一个圆形进度条按钮 的文章。其需求场景是适应...

  • Qml进度条

    基本上是官网例子上加了一些方法 需要完整代码请访问QtQuickExamples

  • Android自定义圆形进度条学习

    Android中圆形进度条的应用还是挺多的,最近学习实现了圆形进度条。 思路 要实现圆形进度条, 首先要画灰色背景...

网友评论

    本文标题:Qml圆形进度按钮

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