Tableview 行应该在 QML 中按下时更改

Tableview row should change on pressed in QML

我的代表是表格视图中的图像,如何更改所选行的图像 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
                    }
                }

您可以使用 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 处理程序,因为这将覆盖绑定(这可能也是它在您当前设置中不起作用的原因)