У меня сложный диалог, который содержит множество элементов управления в сложных макетах. Мне нужно добавить маркер курсора: вертикальная линия, которая рисуется над этим диалогом и должна следовать за курсором мыши. Я не понимаю, как это реализовать. Пример упрощенного кода:
import QtQuick 2.12
import QtQuick.Window 2.12
import QtQuick.Controls 2.12
Window {
visible: true
width: 640
height: 480
Button {
anchors.centerIn: parent
width: 100
height: 50
text: "Button"
highlighted: hovered
}
Rectangle {
id: cursorMarker
width: 1
color: "black"
anchors.top: parent.top
anchors.bottom: parent.bottom
}
MouseArea {
anchors.fill: parent
hoverEnabled: true
onPositionChanged: {
cursorMarker.x = mouse.x
}
}
}
В этом примере MouseArea помещается над кнопкой и перехватывает все сообщения мыши. Поэтому кнопка не подсвечивается, когда курсор мыши перемещается над ней. В случае, когда MouseArea находится под кнопкой, маркер курсора не позиционируется правильно, когда мышь перемещается над кнопкой. Но мне нужно и то и другое: маркер курсора правильно расположен над всем диалогом и кнопка работает правильно. Как решить эту проблему?