如何禁止点击 qml 中的项目?
How to disable clicking through item in qml?
我目前使用的应用程序有一张地图作为背景,在它上面可以打开内部有多个视图的各种其他对话框(视图)。当某些对话框处于活动状态时,在其上方拖动时,背景地图会移动,就像上面没有任何东西一样。有人知道如何禁用它吗?我不希望地图对点击或对话框内的任何内容做出反应。
项目的组织方式使得每个对话框都在单独的 qml 文件中实现:
我有每个对话框的每个 qml 文件,以及应用程序的每个组件(地图),所以
当您单击可滚动水平列表中的设置选项卡时,设置选项卡将从包含所有对话框的 qml 打开,包括应用程序的底部和顶部
每个对话框都在地图上方,有 50% 的反色parent 背景,里面有相关的图片和按钮
我想在对话框背景上拖动时禁用拖动地图。我尝试将此设置为每个对话框:
鼠标区域{
anchors.fill: parent
点击时:mouse.accepted = true
}
(parent 是包含对话框所有元素的项目),但这不起作用。
如果我没有正确理解你的问题,将 MouseArea 的 propagateComposedEvents 设置为 false 就足够了。
我目前使用的应用程序有一张地图作为背景,在它上面可以打开内部有多个视图的各种其他对话框(视图)。当某些对话框处于活动状态时,在其上方拖动时,背景地图会移动,就像上面没有任何东西一样。有人知道如何禁用它吗?我不希望地图对点击或对话框内的任何内容做出反应。
项目的组织方式使得每个对话框都在单独的 qml 文件中实现:
我有每个对话框的每个 qml 文件,以及应用程序的每个组件(地图),所以
当您单击可滚动水平列表中的设置选项卡时,设置选项卡将从包含所有对话框的 qml 打开,包括应用程序的底部和顶部
每个对话框都在地图上方,有 50% 的反色parent 背景,里面有相关的图片和按钮
我想在对话框背景上拖动时禁用拖动地图。我尝试将此设置为每个对话框:
鼠标区域{
anchors.fill: parent
点击时:mouse.accepted = true
}
(parent 是包含对话框所有元素的项目),但这不起作用。
如果我没有正确理解你的问题,将 MouseArea 的 propagateComposedEvents 设置为 false 就足够了。