【发布时间】:2015-08-07 17:50:17
【问题描述】:
我遇到了嵌套 MouseAreas 的问题。
当我点击红色的Rectangle 时,它会触发顶部Rectangle 上的exited 事件(至少对我而言)。这是预期的行为吗?如果是这样,是否有解决方法?
编辑
澄清
我想要的是能够在单击子Rectangle 时保持顶部Rectangle 的悬停(顶部Rectangle 应该保持blue)。如果我想在悬停时隐藏和取消隐藏按钮等,这很有用,这是 Web 界面 (HTML/CSS) 中的常见做法。现在这样做会导致奇怪的效果,因为单击 entered 信号所显示的按钮会在您单击它们时消失。
编辑
我用想要的行为做了一个 Javascript 演示: https://jsfiddle.net/uo4vousu/ 即使您单击红色矩形,父级仍保持蓝色,这就是我想要的。在 QML 示例中,父级变为绿色。 我更新了 QML 代码来处理 jsfiddle。
编辑
这可能是 linux 独有的问题。
这是一个例子:
Rectangle {
id: top
width: 100
height: 32
anchors.centerIn: parent
color: "green"
MouseArea {
anchors.fill: parent
hoverEnabled: true
onExited: top.color = "green"
onEntered: top.color = "blue"
Rectangle {
id: child
width: 16
height: 16
anchors.centerIn: parent
color: "red"
MouseArea {
anchors.fill: parent
onPressed: child.color="gray"
onReleased: child.color="red"
}
}
}
}
【问题讨论】:
标签: qt qml qtquick2 archlinux qt5.5