更改模型时,如何使QML表视图中的选定行保持不变

时间:2016-02-09 00:33:44

标签: qt qml qtableview

我正在使用qml表视图来显示一组值。在每一行上,都有允许用户调整值的按钮。

我的模型是qobjects的数组。每次用户做某事来更改值时,我都会向控制器类发送一个信号,它正在创建一个新模型并将其提供给表视图。不幸的是,更新模型时,所选行设置为-1。有没有办法改变这种行为?

1 个答案:

答案 0 :(得分:0)

我认为你应该更新模型,而不是完全改变它。

那就是说,你的问题是当前选中的行索引(currentRow)发生了变化,是吗?如果是这样,也许您应该将索引存储在变量中,您可以像这样更新:

TableView {
    ...
    property int unwaveringCurrentRow
    ...
    onCurrentRowChanged: { if (currentRow != -1) unwaveringCurrentRow = currentRow }
    ...

    onModelChanged: { currentRow = unwaveringCurrentRow }
}

另外,请注意当模型更改时如何再次重置当前行。