QML内联组件的实现与调用

需求:

一个矩形里有多个圆形,自定义一个圆形组件,

便于多次调用,提高复用性,并减少代码冗余。


QML实现:


//inlineComponent.qml
import QtQuick 2.0

//矩形
Rectangle{
    width: 400
    height: 300
    color: "yellow"

    //组件
    Component{
        id: circular

        //圆形
        Rectangle{
            id: rect
            //通过设置别名来实现属性双向绑定
            property alias radius: rect.radius //半径
            property alias color: rect.color //颜色

            width: radius * 2
            height: radius * 2
            radius: 100 //默认
            color: "blue" //默认蓝色
        }
    }

    //1.通过Loader来引用组件
    Loader{
        sourceComponent: circular
        //组件载入完成后,设置属性
        Component.onCompleted: {
            item.radius = 10 //设置半径
            item.color = "red" //设置颜色
        }

        //定位-左
        anchors.verticalCenter: parent.verticalCenter
        anchors.left: parent.left
    }

    //2.通过Loader来引用组件
    Loader{
        sourceComponent: circular
        Component.onCompleted: {
            item.radius = 25
            item.color = "gray"
        }

        //定位-中
        anchors.verticalCenter: parent.verticalCenter
        anchors.horizontalCenter: parent.horizontalCenter
    }

    //3.通过Loader来引用组件-另一种方式
    Loader{
        id: loader
        //width: 200
        //height: 200

        //定位-右
        anchors.verticalCenter: parent.verticalCenter
        anchors.right: parent.right
    }

    Component.onCompleted: {
        loader.sourceComponent = circular
        loader.item.radius = 50
        loader.item.color = "green"
    }

}



效果图:

转载于:https://my.oschina.net/jannn/blog/601923

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值