【Qt6】 MouseArea鼠标穿透
mouse.accepted : 控制合成事件和基本事件的传递
propagateComposedEvents 是控制合成事件在组件间的传递穿透
import QtQuick
import QtQuick.VirtualKeyboard
Window {
id: window
width: 640
height: 480
visible: true
title: qsTr("Hello World")
color: "gray"
Rectangle{
height: 100
width: 100
anchors.centerIn: parent
MouseArea{
anchors.fill: parent
onPressed: {
console.log("press A")
}
onClicked: {
console.log("click A")
}
}
}
Rectangle{
height: 100
width: 100
anchors.centerIn: parent
MouseArea{
anchors.fill: parent
onPressed: {
console.log("press B")
mouse.accepted = false // 穿透,基本事件不受propagateComposedEvents影响
}
onClicked: {
console.log("click B")
mouse.accepted = false // 合成事件穿透
}
// 对于所有基本事件(pressed),mouse.accepted = false ,事件未被接受,则继续按照视觉或堆栈顺序向下传递
// 对于合成事件(clicked),除了mouse.accepted,propagateComposedEvents也会拦截传递行为
propagateComposedEvents: true // 合成事件可以穿透组件层
}
}
}

浙公网安备 33010602011771号