rsh*_*sht 7 qt qml qt-quick qt5
我正在使用MouseArea实现手势捕捉器(向左/向右滑动).它应该在Flickable内部使用垂直flickableDirection.此外,它应该以可视堆栈顺序将鼠标事件传播到其下的其他元素.问题是,将propagateComposedEvents设置为true的子mouseArea 在完成一次单击之前阻止任何父级的轻弹.首次点击后,它正常工作.这是显示此内容的简化代码.
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
Run Code Online (Sandbox Code Playgroud)
我花了很多时间来解决这个问题并且会感激任何帮助.提前致谢!
我发现在MouseArea中跟随信号处理程序是一种解决方法,不要破坏我的代码:
onReleased: {
if (!propagateComposedEvents) {
propagateComposedEvents = true
}
}
Run Code Online (Sandbox Code Playgroud)
propagateComposedEvents应该false在声明(或ommited)上设置.
谢谢大家的努力!
| 归档时间: |
|
| 查看次数: |
3242 次 |
| 最近记录: |