我有这样的代码:
import QtQuick 2.0
import QtQuick.Window 2.0
Window {
visible: true
width: 500
height: 500
GridView {
id: grid
anchors.fill: parent
cellWidth: 30
cellHeight: 30
model: 120
delegate: Rectangle {
width: grid.cellWidth
height: grid.cellHeight
color: "grey"
}
MouseArea {
anchors.fill: parent
onPressed: console.info(">> PRESSED triggered")
onMouseXChanged: console.info(">> " + mouseX)
onReleased: console.info(">> RELEASED triggered")
preventStealing: true
propagateComposedEvents: true
}
}
}
当我按住鼠标按钮并严格沿X轴移动时,MouseArea
中的所有信号都会触发。但是当鼠标也沿着Y轴向上或向下移动时,onMouseXChanged
和onReleased
信号不会触发。似乎GridView
拦截MouseArea
的信号,从MouseArea
窃取它们。如何让它们协同工作:GridView
内置MouseArea
?
答案 0 :(得分:0)
在true
。
MouseArea
此属性保存鼠标事件是否可能从此MouseArea中被盗。
如果将MouseArea放置在过滤子鼠标事件(例如Flickable)的项目中,则如果父项目识别出手势,则鼠标事件可能会从MouseArea中被盗。一个轻弹的手势。如果preventStealing设置为true,则任何项都不会窃取鼠标事件。