如何确保QTableView.SelectedIndex符合模型行顺序?

2024-09-30 10:33:19 发布

您现在位置:Python中文网/ 问答频道 /正文

我在PyQT中使用QTableView,需要获取所选索引。我使用它们删除关联模型(QSqlQueryModel)中的行。我正在使用下面的代码,但我确信在SqlQueryModel中使用QTableView索引不是一个好主意。在大多数语言中,模型数据的顺序与网格(TableView)的顺序并不相同。如果我不得不对行进行排序,我想索引将不再适合。有更好的方法吗

for item in self.TableView.selectedIndexes():
    self.SqlQueryModel.removeRow(item.row())

Tags: 数据代码模型self语言网格排序顺序
1条回答
网友
1楼 · 发布于 2024-09-30 10:33:19

除了您指出的错误之外,还有一个选项,即不同的QModelIndex可能属于同一行。因此,首先要获取唯一的行,然后按降序删除行:

rows = set([index.row() for index in self.TableView.selectedIndexes()])
for row in reversed(list(rows)):
    self.SqlQueryModel.removeRow(row)

相关问题 更多 >

    热门问题