QML -----Component AND Loader

10 篇文章 0 订阅
1 篇文章 0 订阅
import QtQuick
import QtQuick.Controls
Window {
    width: 640
    height: 480
    visible: true
    title: qsTr("Hello World")
    Component{//组件的顶层item只能有id属性。
        id:colorComponent
        Rectangle{
            id:colorPicker
            width:50
            height:30
            color: "blue"

            signal colorPicked(color clr)
            MouseArea{
                anchors.fill: parent
                onPressed: colorPicker.colorPicked(colorPicker.color)
            }
        }
    }
    Loader{
        id:redLoader
        anchors.left: parent.left
        anchors.leftMargin: 4;
        anchors.bottom: parent.bottom
        anchors.bottomMargin: 4
        sourceComponent: colorComponent//加载id的组件对象,这里已经建立对象,就可以显示组件
        onLoaded: {
            item.color="red"//设置改变组件的属性
        }
    }

    Text{
        id:coloredText
        text:"ssss"
        anchors.centerIn: parent
        font.pixelSize: 32
    }

    Connections{
        target: redLoader.item;//指向组件的顶层item--rectangle
        function onColorPicked(clr){//触发信号把clr信号传到{}内。自定义信号要采用这种格式,否则会报错。
            coloredText.color=clr
        }

    }

}

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值