如何确定委托QML项目所在的ListView?

时间:2015-11-19 09:44:50

标签: qml qt5

我有两个ListViews(选择和队列),它们都使用相同的委托。

我想在两个列表之间以不同的方式呈现一些项目信息。

如何确定QML项目所在的ListView?我没有可以在QML中访问的item.parent。

1 个答案:

答案 0 :(得分:2)

您可以使用ListView.view附加属性作为提到的folibis,但有一个更好的方法。如果将委托移动到自己的QML文件中,例如Delegate.qml,则可以创建该类型的实例,只需设置一个更改其外观的属性。

例如:

ListView {
    // ...
    delegate: Delegate {
        fancy: true
    }
}

ListView {
    // ...
    delegate: Delegate {
        fancy: false
    }
}

你的代码Delegate是以它知道如何渲染花式/非花式委托的方式。例如:

Rectangle {
    property bool fancy

    color: fancy ? "steelblue" : "grey"
    // ...
}