如何确定委托 QML 项目在哪个 ListView 中?
How to determine which ListView a delegate QML Item is in?
我有两个 ListView(选择和队列),它们都使用同一个委托。
我想在两个列表中以不同方式呈现一些项目信息。
如何确定 QML 项目位于哪个 ListView 中?在 QML 中没有 item.parent 我可以访问。
您可以使用附加的 ListView.view
属性 作为 folibis 提到的,但还有更好的方法。如果将委托移动到它自己的 QML 文件中,比如 Delegate.qml
,您可以创建该类型的实例,只需设置一个 属性 来改变它们的外观。
例如:
ListView {
// ...
delegate: Delegate {
fancy: true
}
}
ListView {
// ...
delegate: Delegate {
fancy: false
}
}
您编写 Delegate
代码时要知道如何呈现 fancy/non-fancy 委托。例如:
Rectangle {
property bool fancy
color: fancy ? "steelblue" : "grey"
// ...
}
我有两个 ListView(选择和队列),它们都使用同一个委托。
我想在两个列表中以不同方式呈现一些项目信息。
如何确定 QML 项目位于哪个 ListView 中?在 QML 中没有 item.parent 我可以访问。
您可以使用附加的 ListView.view
属性 作为 folibis 提到的,但还有更好的方法。如果将委托移动到它自己的 QML 文件中,比如 Delegate.qml
,您可以创建该类型的实例,只需设置一个 属性 来改变它们的外观。
例如:
ListView {
// ...
delegate: Delegate {
fancy: true
}
}
ListView {
// ...
delegate: Delegate {
fancy: false
}
}
您编写 Delegate
代码时要知道如何呈现 fancy/non-fancy 委托。例如:
Rectangle {
property bool fancy
color: fancy ? "steelblue" : "grey"
// ...
}