如何确定QTableView.SelectedIndexes是否适合模型行顺序?

时间:2019-10-03 14:47:34

标签: python pyqt pyqt5

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

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

1 个答案:

答案 0 :(得分:0)

除了您指出的错误外,还可以选择不同的QModelIndex可能属于同一行。因此,首先是获取唯一行,然后以降序删除行:

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