【发布时间】:2019-10-30 11:19:06
【问题描述】:
我有一个带有按钮的 QML 组件,... 在里面。我放置了一个覆盖整个组件的 MouseArea,因为我需要在单击组件的任何位置执行操作。但是,我也想执行 MouseArea 后面的动作。
例如,如果我点击组件中的一个按钮,我想执行 MouseArea 动作,然后执行按钮动作。
Item {
Button{
anchors: ...
onClicked: console.info("Button clicked")
}
MouseArea{
anchors.fill: parent
propagateComposedEvents: true
onClicked: console.info("MouseArea clicked")
}
}
如果propagateComposedEvents: true,则不会执行MouseArea onClicked,但会执行Button onClicked。如果为 false,则执行 MouseArea 但不执行 Button onClicked。
我希望同时执行 MouseArea(第一个)和 Button(第二个)信号 onClicked。
【问题讨论】:
-
我认为您可以致电
buttonId.clicked()来响应MouseArea的点击信号 -
确实,这可能是解决方案,但我没有一个按钮。我在 MouseArea 后面有更多组件,我不能将每个操作都放在 MouseArea 点击信号中。
-
然后,也许,描述你真正想要实现的目标。因为也许,MouseArea 不是你的解决方案
标签: qt qml mouseevent mousearea