如何转发子组件的属性?

How to forward properties of a child component?

当围绕一些组件编写包装器时,例如:

MyComponent.qml

ColumnLayout{
    ListView{
        id: listview
    }
}

是否可以在不手动输入所有别名的情况下公开子项(listview 此处)的所有属性?

这样我就可以做类似于以下内容的操作(如果允许的话):

ColumnLayout{
    MyComponent{
        listview.model: ListModel{  // Here
        }
    }
}

(通过转发它们,或者通过定义一个指向列表视图的 属性(我试过了,它似乎不起作用......),或者任何其他允许绑定 属性 来自列表视图,就像我在定义 ListView)

时所做的那样

您只需为要公开的对象的id 添加别名即可。所以在MyComponent.qml中,你可以这样做:

ColumnLayout{
    property alias listview: listview
    ListView{
        id: listview
    }
}

然后你可以从其他对象访问它:

ColumnLayout{
    MyComponent{
        listview.model: ListModel{
        }
    }
}