У меня есть окно, которое содержит QTreeView (databaseTreeView
) на подклассе QAbstractTableModel (через QSortFilterProxyModel).У меня есть кнопка [Добавить], которая вызывает ui->databaseTreeView->model()->insertRow(ui->databaseTreeView->model()->rowCount());
.У меня также есть кнопка [Редактировать], которая использует ui->databaseTreeView->selectionModel()->currentIndex();
для передачи индекса в окно редактора.
Я бы хотел, чтобы кнопка [Добавить] автоматически открывала редактор с индексом недавносоздан элемент, но поскольку модель отсортирована, я не могу использовать номер строки, в которую я вставил строку.Кроме того, insertRows()
возвращает только логическое значение (для моей ситуации индекс был бы гораздо удобнее, поэтому мне интересно, может ли кто-нибудь сказать мне, как получить индекс недавно добавленного элемента).
I 'Я хочу посвятить этому два или три часа, рефакторинг, если нет альтернативы, но я бы подумал, что это должно быть довольно просто.Я с любопытством смотрю на сигнал QAbstractItemModel::rowsInserted
, но он просто возвращает строки, которые я дал insertRows()
, и редактирует последний элемент в списке, независимо от того, был ли он добавлен.
Полный текст источника можно найти по адресу https://github.com/megamasha/FlashKard, чтобы каждый мог ближе познакомиться.