事件传播方向:子类向父类传递,期间可以拦截 event->accept()
或者传递给父对象 event->ignore()
默认情况下都会拦截,所有有时候会产生一些控件无法接收到信号的情况,比如
// // 悬停效果
// MouseArea {
// anchors.fill: parent
// hoverEnabled: true
// propagateComposedEvents: true // 允许事件传播到子组件
// onEntered: parent.color = "#f0f8ff"
// onExited: parent.color = index % 2 === 0 ? "#f9f9f9" : "#ffffff"
// onClicked: {
// // 允许点击事件传播到子组件(如复选框)
// mouse.accepted = false
// }
// }
没有效果,很难发掘
这个时候就产生了一个问题,一个控件需要监控另一个控件的事件
这个时候我们就需要使用事件过滤器,禁用拦截某些事件