我需要动态地禁用和启用我的QML地图上的平移。 更详细地说,我需要按下按钮才能抑制平移,然后再按另一个按钮。 我在网上看了一下,但是找不到任何有帮助的东西,或者至少我没有发现它。有关于如何使用普通显示器和鼠标进行触摸手势的文档。
有办法吗?
谢谢。
答案 0 :(得分:0)
根据文档(http://doc.qt.io/qt-5/qml-qtlocation-mapgesturearea.html#acceptedGestures-prop),您可以使用gesture.acceptedGestures
并接受除MapGestureArea.PanGesture
以外的所有内容。
这是一个示例,您可以打开和关闭平移:
Window {
width: 512
height: 512
visible: true
property bool disable_panning : false
property int no_panning : (MapGestureArea.PinchGesture | MapGestureArea.FlickGesture |MapGestureArea.RotationGesture | MapGestureArea.TiltGesture)
property int panning : (MapGestureArea.PanGesture | MapGestureArea.PinchGesture | MapGestureArea.FlickGesture |MapGestureArea.RotationGesture | MapGestureArea.TiltGesture)
Map
{
anchors.fill: parent
plugin: Plugin{ name: "osm"}
gesture.acceptedGestures: disable_panning ? no_panning : panning
RowLayout
{
Button
{
text: "Disable panning"
onClicked: {
disable_panning = true
}
}
Button
{
text: "Enable panning"
onClicked: {
disable_panning = false
}
}
}
}
}