我在底部有一个可轻弹的场景“编辑器”,并停靠在其右侧,一个可轻弹的场景“大纲”在其顶部,它显示了场景结构的树。
Flickable {
id: editor
anchors.fill: parent
contentWidth: 5000
contentHeight: 5000
Repeater {
model: 500
delegate: Rectangle {
width: Math.random() * 200 + 50
height: width
x: Math.random() * editor.contentWidth
y: Math.random() * editor.contentHeight
color: Qt.rgba(Math.random(), Math.random(), Math.random(), 1)
border.color: "black"
}
}
}
Flickable {
id: outliner
anchors.right: editor.right
width: contentWidth
height: parent.height
contentWidth: contentItem.childrenRect.width
contentHeight: contentItem.childrenRect.height
Column {
Repeater {
model: 500
delegate: Rectangle {
width: Math.random() * 200 + 50
x: outliner.contentWidth - width
height: 50
color: Qt.rgba(Math.random(), Math.random(), Math.random(), 1)
border.color: "black"
}
}
}
}
自然,我希望能够同时轻弹两者来导航,因为它们都比可用的屏幕空间更大。
问题是大纲可轻弹只会阻止编辑器轻弹,即使我从大纲项目不占据的位置轻弹。我不希望这样,我想要的是仅当轻弹发生在大纲项目顶部时才轻弹大纲,否则我想跳到编辑器,所以我可以单击并将其从该区域轻弹到正确的。
由于工作方式,我无法做到这一点Flickable
。它会首先检查是否有拖动,并且只有当点击不超过拖动阈值时,它才会让点击向下到底层元素。所以我想不出只有在那个位置有物体的情况下才能轻弹的方法。
有什么办法可以让事件处理做我想做的事吗?