lau*_*ura 7 c++ qt qtableview qabstracttablemodel
我想在单击delete按钮时从表中删除选定的行.
但我找不到有关删除Qt文档中的行的任何内容.有任何想法吗?

如果您要删除多行,则使用该调用可能会遇到一些复杂情况removeRow()。这对行索引进行操作,因此您需要从下往上删除行,以防止行索引在删除时发生移动。这就是我在 PyQt 中所做的,不了解 C++,但我想它非常相似:
rows = set()
for index in self.table.selectedIndexes():
rows.add(index.row())
for row in sorted(rows, reverse=True):
self.table.removeRow(row)
Run Code Online (Sandbox Code Playgroud)
非常适合我!然而需要知道的一件事是,在我的例子中,当用户单击特定单元格(其中有一个带有“X”的按钮)时,该函数就会被调用。不幸的是,当他们单击该按钮时,它会取消选择该行,从而阻止其被删除。为了解决这个问题,我只是捕获了发件人的行并将其附加到“remove_list”的开头,“for 循环”之前。看起来像这样:
rows.add(self.table.indexAt(self.sender().pos()).row())
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
15354 次 |
| 最近记录: |