Сохранение отредактированного элемента, выбранного в QListView - PullRequest
1 голос
/ 15 марта 2011

Я реализовал пользовательский QAbstractListModel, который отображается в редактируемом QListView.Элементы в модели должны быть отсортированы, поэтому модель реализует метод sort() и вызывает его из setData() после сохранения данных.

В настоящее время пользователь изменяет элемент,модель сортируется, а QListView обновляется.Но выбор остается на элементе в индексе, где произошло редактирование.Вместо этого я хотел бы, чтобы выделение переместилось в новый индекс редактируемого элемента.

Как можно сделать так, чтобы выделение перемещалось вместе с элементом?

1 Ответ

1 голос
/ 15 марта 2011

Я наконец нашел способ достичь этого.Это так же просто, как подключиться к сигналу dataChanged(QModelIndex, QModelIndex) модели и обновить выбор в обработчике.Моя ошибка заключалась в том, что я вызвал сигнал в setData() перед сортировкой модели.

Вместо этого сначала должна быть отсортирована модель, затем можно найти новый индекс измененного элемента,и наконец, сигнал dataChanged(QModelIndex, QModelIndex) должен называться с новым индексом .

...