停用 (?) QML 项目以避免操作区域重叠

Posted

技术标签:

【中文标题】停用 (?) QML 项目以避免操作区域重叠【英文标题】:Deactivate (?) QML Item to avoid overlapping of action areas 【发布时间】:2013-11-12 10:08:13 【问题描述】:

这里是关于 Stack Oveflow 的第一个问题,所以不要作恶! :)

言归正传:如果有堆叠的元素和堆叠的动作区域,如何确保您根据所见而不是底层元素采取行动?

我正在关注有关 Qt Quick 2.0 桌面编程的教程,其中有人制作了一个类似便利贴的应用程序,其中有几个页面可以打开。

所以在 main.qml 我有一个“PagePanel.qml”,其中一个有 3 个“Page.qml”,一个在另一个之上。每一个都具有不透明度 0.0,直到通过单击相应的标记强制不透明度 1.0,以可视化所选页面。在页面中链接(和创建)项目“Note.qml”,它们是贴纸笔记,带有一个用于拖动项目的区域和一个用于在顶部书写的区域。

问题是,如果我在不同的页面上有两个重叠的笔记,如果我尝试拖动或在笔记上书写,我可能实际上(没有看到)在底层笔记上拖动和书写。 换句话说,当从一个页面切换到另一个页面时,不同页面的操作区域保持活动状态。

如何使隐藏页面不活动而只对可视页面进行操作?

提前谢谢你, A.

【问题讨论】:

【参考方案1】:

正如我在 cmets 中所说,如果您有 3 个 Page 元素彼此重叠。最简单的方法是将visible: false 设置为您要禁用的那个,将visible: true 设置为活动的那个。这将禁用不可见元素中的所有MouseAreaDropArea

【讨论】:

以上是关于停用 (?) QML 项目以避免操作区域重叠的主要内容,如果未能解决你的问题,请参考以下文章

在 Shiny 中,避免 selectInput 下拉菜单与其下方的操作按钮重叠

如何使用CMake项目生成提前的QML缓存?

避免双击操作栏中的项目

移动文本字段编辑区域

QML TableView 鼠标区域不会将点击传播到选择模型

如何使 OpenGL 视口具有渲染到其中的 QML 项目的确切大小和位置?