qml中获取Loader加载的顶层对象

如下所示,当点击button时,修改Loader加载的组件中的Rectangle对象的背景色。
此时需要使用到 Loader.item属性来引用rect对象。

import QtQuick 2.0
import QtQuick.Controls 2.12
import QtQuick.Window 2.12
import QtQuick.Layouts 1.3
import QtQml 2.12

Window {
    visible: true
    width: 800
    height: 480
    title: qsTr("Hello World")

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

    // 点击按钮时,修改rect的背景色
    Row {
        Loader {
            id: loader
            sourceComponent: com
        }
        Button {
            text: "click"
            onClicked: {
                // rect.color = "green"         // error
                // com.rect.color = "green"     // error
                loader.item.color = "green"
            }
        }
    }
}

qml中获取Loader加载的顶层对象_第1张图片

你可能感兴趣的:(qml,qml,qt)