gpt4 book ai didi

qml - MouseArea 窃取了 QML 元素的鼠标事件

转载 作者:行者123 更新时间:2023-12-04 01:33:49 25 4
gpt4 key购买 nike

如果我放一个 MouseArea在 QML 元素上,然后 MouseArea将窃取所有鼠标事件。
因此,TextEdit将是不可编辑和不可选择的。

TextEdit {
// some properties
MouseArea {
// some properties
onClicked: { /* do something */ }
}
}
有办法解决吗?
顺便说一句,如果我放一个大 MouseArea在另一个 MouseArea , 更大 MouseArea将窃取所有鼠标事件。我该如何解决?我认为手动传递鼠标事件可以解决这个问题,但是怎么做呢?

最佳答案

您必须启用 MouseArea传播组合事件,如 clickedreleased到下面的组件,如@Torgeirl 的回答所述。

如果您想要您的 TextEdit , SliderCheckBox要接收这些类型的事件,只需通过设置它的 accepted 来传递事件。属性(property)到false .

示例代码:

RowLayout {
TextEdit { text: "Hi" }
Slider {}
CheckBox { text: "CheckBox"}

MouseArea {
anchors.fill: parent
propagateComposedEvents: true

onClicked: mouse.accepted = false;
onPressed: mouse.accepted = false;
onReleased: mouse.accepted = false;
onDoubleClicked: mouse.accepted = false;
onPositionChanged: mouse.accepted = false;
onPressAndHold: mouse.accepted = false;
}
}

关于qml - MouseArea 窃取了 QML 元素的鼠标事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16183408/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com