Qt之QML第三章Component与Loader

6 QML-组件Component、Loader

6.1Component

可以用来封装控件
用法1:两个基础函数在窗口生成和释放的时候打印信息
示例代码

Component.onCompleted: { //在窗口生成的时候自动运行打印信息
        console.log("onCompleted")
    }
    Component.onDestruction: { //在窗口销毁的时候调用打印信息
        console.log("onDestruction")
    }

6.2Loader延时加载控件

调用封装的控件
Loader:延时加载控件
asynchronous://设置异步属性,如果控件还在加载,可以先显示其他东西显示正在加载
loader.item:在控件加载完成后想要对他的属性进行更改使用loader.item
loader.item.paused = !loader.item.paused //控制是否播放当前动画
AnimatedImage:加载动图
Image:加载图片


   Component{
       id:com
       Rectangle{
           id:rect
           width: 200
           height: 100
           color: "black"
       }
   }

   Loader{ //延时加载控件
        id:loader
        source: "/MyRectangle.qml" //加载已有控件路径
        asynchronous: true   //设置异步属性,如果控件还在加载,可以先显示其他东西显示正在加载
        sourceComponent: com   //调用上面Component绘制的控件 也就是调用封装的控件
        onStatusChanged: {
            console.log("status",status)
        }
        Component.onCompleted: { //在窗口生成的时候自动运行打印信息
            console.log("onCompleted")
        }
        Component.onDestruction: { //在窗口销毁的时候调用打印信息
            console.log("onDestruction")
        }
    }

    Button{
        width: 50
        height: 50
        x:200
        onClicked: {
            //在控件加载完成后想要对他的属性进行更改使用loader.item
            loader.item.width = 50
            loader.item.height = 50
            loader.item.color = "red"
            loader.item.paused = !loader.item.paused //控制是否播放当前动画
            //loader.sourceComponent = null  //调用销毁打印
        }
    }

    Component{ //如果不用Component的会直接显示,使用loader调用之后才会显示
        id:com2
        Image { //这个只能加载图片不能加载动图
            id: img
            source: "file" //加载图片路径
            width: 200  //改变图片大小
            height: 200
        }
    }

    Component{ //如果不用Component的会直接显示
        id:com3
        AnimatedImage { //加载动图
            id: img
            source: "file" //加载动图路径
            speed: 10 //控制动图10倍速度加载动图 这个是QtQuick 2.11引入的
        }
    }



  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值