QML: Button внутри MouseArea блокирует mouse hover

Есть большая область, которая подсвечивается при наведении. Внутри этой области есть кнопка:

import QtQuick 2.15
import QtQuick.Window 2.15
import QtQuick.Controls 2.15

Window {
    width: 640
    height: 480
    visible: true
    title: qsTr("Hello World")

    Rectangle {
        id: background
        anchors.fill: parent
        color: mouseArea.containsMouse ? "red" : "green"
    }

    MouseArea {
        id: mouseArea
        anchors.fill: parent
        hoverEnabled: true

        onEntered: console.log("onEntered")
        onExited: console.log("onExited")
        //onPositionChanged: console.log("position", mouse.x, mouse.y)

        Button {
            id: button
            anchors.centerIn: parent
            width: 200
            height: 100
        }
    }
}

В Qt5 если провести мышкой поверх кнопки, то свойство containsMouse сохранит значение true и не возникнет событий onExited и onEntered.

Если переключится на Qt6, то при проведении мышкой поверх кнопки приходят события onExited и onEntered и containsMouse становится false.

Такое поведение приводит к неприятным последствиям. В Qt5 при наведении на кнопку внутри области подсветка ведёт себя нормально (не исчезает, не мелькает). В Qt6, если провести мышью над кнопками подсветка начинает мелькать.

Мне нужно, чтобы поведение containsMouse было как в Qt5. Можно ли сделать это простым способом?


Ответы (0 шт):