отрисовка выделенного компонента поверх делегата в GridView - PullRequest
0 голосов
/ 26 апреля 2020

Я пытаюсь заставить нарисовать выделенный элемент поверх выбранного в GridView элемента без какого-либо успеха. Вот мой QML:

import QtQuick 2.0

GridView {
    id: gridView
    width: 140
    height: 140
    cellHeight: 70
    cellWidth: 70

    highlight: Rectangle {
        color: "red"
        z: 1
    }

    delegate: Item {
        id: itemId

        width:  GridView.view.cellWidth
        height: GridView.view.cellHeight

        Text {
            id: textId
            text: "1234"
        }

        MouseArea {
            anchors.fill: parent
            onClicked: itemId.GridView.view.currentIndex = index
        }
    }

    model: 100
}

Я надеялся, что установка z в 1 для компонента выделения будет работать, но это не работает, как ожидалось. Если я выбираю элементы, которые отображаются сразу после открытия окна, моя подсветка закрывает их, но когда я начинаю прокручивать и выбирать элементы ниже, подсветка больше не отображается сверху. Как мне это решить?

1 Ответ

1 голос
/ 27 апреля 2020

Значение по умолчанию для z в GridView делегате равно 1 ( ссылка ). Не знаю, почему невозможно указать свойство z: 0 (тогда оно всегда возвращается к значению по умолчанию), когда можно установить любое другое значение, кроме 0. Но вы можете указать z: 2 в свойстве выделения или перезаписать значение по умолчанию z на 0 в обработчике onCompleted делегата:

Component.onCompleted: {
    z = 0;
}
...