我有一个窗口,其中包含databaseTreeView
QAbstractTableModel 子类上的 QTreeView ()(通过 QSortFilterProxyModel)。我有一个 [Add] 按钮,它调用ui->databaseTreeView->model()->insertRow(ui->databaseTreeView->model()->rowCount());
. 我还有一个 [Edit] 按钮,用于ui->databaseTreeView->selectionModel()->currentIndex();
将索引传递给编辑器窗口。
我想让 [Add] 按钮自动打开一个带有新创建项目索引的编辑器,但是随着模型的排序,我不能使用插入行的行号。PlusinsertRows()
只返回一个布尔值(对于我的情况,索引会更方便,所以我想知道是否有人可以告诉我如何获取新添加项目的索引)。
我愿意花两三个小时来做,如果没有其他选择就重构,但我认为它应该相当简单。我好奇地看着QAbstractItemModel::rowsInserted
信号,但这只是返回我给的行insertRows()
,并编辑列表中的最后一项,不管它是否是刚刚添加的项目。
可以在https://github.com/megamasha/FlashKard找到完整的源代码,任何人都可以仔细查看。