Строка просмотра таблицы должна изменяться при нажатии в QML - PullRequest
0 голосов
/ 13 марта 2019

Мой делегат - изображение в виде таблицы. Как изменить изображение выбранной строки onPressed и onReleased должны вернуться в исходное состояние.

itemDelegate: Image
            {
                id:item_id
                height: (tableView.height/(listmodel.count < 4 ? listmodel.count : 4))
                source:
                {
                    var activeRow = tableView.currentRow === styleData.row
                    (activeRow ? Image 1 : styleData.row % 2 ? (image 2): (image 3))
                }

                MouseArea
                {
                    id:table_mouse_id
                    anchors.fill: parent

                    onPressed:
                    {
                       source = image 4
                    }

                    onReleased:
                    {
                        tableView.currentRow = styleData.row
                    }
                }

1 Ответ

1 голос
/ 13 марта 2019

Вы можете использовать pressed свойство MouseArea:

source: {
            var activeRow = tableView.currentRow === styleData.row;
            (activeRow ? table_mouse_id.pressed ? image4 //pressed
                                                : Image1 //active
                       : styleData.row % 2 ? (image2)  //odd
                                           : (image3)) //even
        }

Важное примечание: вы должны удалить обработчик onPressed, так как это переопределит привязку (что, вероятно, также является причиной того, что она не работает в вашей текущей установке)

...