在qml中,loader创建的组件,此时当loader的souceComponet变了其他组件,那么之前创建的组件还在吗?

在 QML 中,当 Loader 的 sourceComponent 属性变更为其他组件时,之前创建的组件会被销毁。这是因为 Loader 负责加载和卸载不同的组件。

以下是一个简单的例子,演示 Loader 的工作方式:

import QtQuick 2.0

Rectangle {
    width: 360
    height: 360

    ListModel {
        id: myModel
        ListElement { name: "Item 1"; value: 1 }
        ListElement { name: "Item 2"; value: 2 }
        ListElement { name: "Item 3"; value: 3 }
    }

    Button {
        text: "Add Item"
        anchors.centerIn: parent
        onClicked: {
            var newItem = { name: "Item " + (myModel.count + 1), value: myModel.count + 1 };
            myModel.append(newItem);
        }
    }

    Button {
        text: "Remove Item"
        anchors.bottom: parent.bottom
        onClicked: {
            if (myModel.count > 0) {
                myModel.remove(myModel.count - 1);
            }
        }
    }

    ListView {
        anchors.fill: parent
        model: myModel
        delegate: Text { text: name; font.pixelSize: 24 }
    }
}

在这个例子中,初始时 Loader 加载的是蓝色的矩形,带有文字 “Initial Component”。当鼠标点击时,Loader 的 sourceComponent 被切换为红色的矩形,带有文字 “New Component”。在切换时,之前加载的蓝色矩形会被销毁,而新加载的红色矩形会取而代之。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值