gpt4 book ai didi

qt - Flickable 内的 MouseArea 阻止它轻弹

转载 作者:行者123 更新时间:2023-12-04 11:36:59 30 4
gpt4 key购买 nike

我正在使用 MouseArea 实现手势捕捉器(向左/向右滑动)。它应该在具有垂直 flickableDirection 的 Flickable 内工作。此外,它应该以视觉堆栈顺序将鼠标事件传播到它下面的其他元素。问题是带有 的子 mouseArea传播组合事件 设置为 true 会在 之前阻止任何 parent 的电影准确的一个 单击。第一次点击后,它工作正常。这是显示这一点的简化代码。

import QtQuick 2.4
import QtQuick.Window 2.2

Window {
id: __root
visible: true
width: 460; height: 640

Flickable {
id: mainFlickable

width: parent.width
height: parent.height
contentHeight: column.height
flickableDirection: Flickable.VerticalFlick

MouseArea {
anchors.fill: parent
propagateComposedEvents: true
z: 1
}

Column {
id: column

width: parent.width

Repeater {
model: 5

Rectangle {
width: __root.width
height: 200

color: "yellow"
border.width: 2

MouseArea {
anchors.fill: parent

onClicked: {
console.log("clicked")
}
}
}
} //repeater
} //column
} //flickable
} //window

我花了很多时间试图解决这个问题,并会感谢任何帮助。提前致谢!

最佳答案

我发现 MouseArea 中的以下信号处理程序是一种解决方法,并且不会破坏我的代码:

onReleased: {
if (!propagateComposedEvents) {
propagateComposedEvents = true
}
}
propagateComposedEvents应设置为 false关于声明(或省略)。

谢谢大家的努力!

关于qt - Flickable 内的 MouseArea 阻止它轻弹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29236762/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com