QML:ListView 委托:项目与 MouseArea
QML: ListView delegate: items vs. MouseArea
我有以下代码:
ListView {
delegate: MyDelegate {
MouseArea {
anchors.fill: parent
/*some other stuff*/
}
}
}
问题是 MyDelegate
包含复选框和来自它们的 MouseArea
"steals" 鼠标事件。它们根本不对鼠标事件做出反应,即不按预期工作。
我知道 MouseArea
的 propagateComposedEvents
属性...但是我必须实现它的所有鼠标事件(clicked
、pressed
, released
,...) 并检查鼠标光标是否在复选框中以相应地设置 mouse.accepted
属性。
这就是我目前对所有这些的理解。有没有更简单的方法,即能够为不显式处理鼠标事件的区域处理所有鼠标事件的方法?比如静态文本、进度条等
您可以将 负数 值应用于 MouseArea
的 z
属性。
来自文档:
Items with a higher stacking value are drawn on top of siblings with a lower stacking order. Items with the same stacking value are drawn bottom up in the order they appear. Items with a negative stacking value are drawn under their parent's content.
我有以下代码:
ListView {
delegate: MyDelegate {
MouseArea {
anchors.fill: parent
/*some other stuff*/
}
}
}
问题是 MyDelegate
包含复选框和来自它们的 MouseArea
"steals" 鼠标事件。它们根本不对鼠标事件做出反应,即不按预期工作。
我知道 MouseArea
的 propagateComposedEvents
属性...但是我必须实现它的所有鼠标事件(clicked
、pressed
, released
,...) 并检查鼠标光标是否在复选框中以相应地设置 mouse.accepted
属性。
这就是我目前对所有这些的理解。有没有更简单的方法,即能够为不显式处理鼠标事件的区域处理所有鼠标事件的方法?比如静态文本、进度条等
您可以将 负数 值应用于 MouseArea
的 z
属性。
来自文档:
Items with a higher stacking value are drawn on top of siblings with a lower stacking order. Items with the same stacking value are drawn bottom up in the order they appear. Items with a negative stacking value are drawn under their parent's content.