События наведения мыши не работают в заголовке TableView - PullRequest
0 голосов
/ 21 июня 2019

Подобный вопрос задается здесь

Как получить событие Clicked или Pressed на заголовке QML TableView?

Я хочу выделить заголовок при наведении курсора.Но поведение в headerDelegate странное.

headerDelegate: Rectangle {
    height:30
    MouseArea{
        hoverEnabled: true
        anchors.fill: parent

        onPressed: {
            console.debug("This will not be printed")
        }

        onEntered: {
            console.debug("Will print on pressed event")
        }

        onExited: {
            console.debug("Will print on released event")
        }
    }
}

При наведении курсора не происходит никаких событий вообще.

1 Ответ

1 голос
/ 21 июня 2019

Наведение и другие состояния обрабатываются компонентом styleData в делегате заголовка.

Если вы хотите знать, когда меняется наведение, подключите различные сигналы (onPressed, onContainsMouseChanged,и т. д.) styleData для функции.

Например:

headerDelegate: Rectangle {
        height:30
        color: "red"
        Connections {
            target: styleData
            onPressedChanged: {
                console.debug("PRESSED:  "+ styleData.column + " " + styleData.pressed)
            }

            onContainsMouseChanged: {
                if (styleData.containsMouse)
                    console.debug("The mouse is hover the header of column " + styleData.column)
                else
                    console.debug("The mouse is leaving the header of column " + styleData.column)
            }
        }
    }
...