QSortFilterProxyModel und insertRow()
Verfasst: 1. Dezember 2009 17:27
Hallo,
ich verwende eine QTreeView mit einem von QAbstractItemModel abgeleitetem Modell.
Folgender Python-Code fügt problemlos eine neue Node unterhalb der aktuellen Position ein:
So weit, so gut. Nun würde ich aber gerne ein QSortFilterProxyModel einsetzen, um die TreeView bequem sortieren zu können.
Leider wird in diesem Fall die neue Node dann nicht unterhalb der aktuellen, sondern stets an unterster Position erstellt, während das darauf folgende setData() eine bestehende Node überschreibt (an der Stelle, an der ich die neue Node eigentlich erwartet hätte).
Was mache ich da nur falsch?
Gruß + vielen Dank für jede Hilfe vorab
OscarWild
[edit: Copy-/Pastefehler im Code beseitigt]
ich verwende eine QTreeView mit einem von QAbstractItemModel abgeleitetem Modell.
Folgender Python-Code fügt problemlos eine neue Node unterhalb der aktuellen Position ein:
Code: Alles auswählen
selection_model = self.ui.TV_Variables.selectionModel()
index = selection_model.currentIndex()
self._model.insertRow(index.row() + 1, index.parent())
child = self._model.index(index.row() + 1, 0, index.parent())
self._model.setData(child, QVariant("(neu)"), Qt.EditRole)
Code: Alles auswählen
self._model = QSortFilterProxyModel(self)
self._model.setSourceModel(self._SourceModel) # das ursprüngliche Modell
self.ui.TV_Variables.setModel(self._model)
Was mache ich da nur falsch?
Gruß + vielen Dank für jede Hilfe vorab
OscarWild
[edit: Copy-/Pastefehler im Code beseitigt]