我有两个ListViews(选择和队列),它们都使用相同的委托 .
我想在两个列表之间以不同的方式呈现一些项目信息 .
如何确定QML项目所在的ListView?我没有可以在QML中访问的item.parent .
你可以使用 ListView.view 附加属性作为folibis提到,但有一个更好的方法 . 如果将委托移动到其自己的QML文件中,例如 Delegate.qml ,则可以创建该类型的实例,只需设置一个更改其外观的属性即可 .
ListView.view
Delegate.qml
例如:
ListView { // ... delegate: Delegate { fancy: true } } ListView { // ... delegate: Delegate { fancy: false } }
你以这样的方式编码 Delegate ,它知道如何渲染一个奇特/非奇特的委托 . 例如:
Delegate
Rectangle { property bool fancy color: fancy ? "steelblue" : "grey" // ... }
1 回答
你可以使用
ListView.view
附加属性作为folibis提到,但有一个更好的方法 . 如果将委托移动到其自己的QML文件中,例如Delegate.qml
,则可以创建该类型的实例,只需设置一个更改其外观的属性即可 .例如:
你以这样的方式编码
Delegate
,它知道如何渲染一个奇特/非奇特的委托 . 例如: