QTreeView/QStandardItem: (Child-)Itemreihenfolge aendern?
Verfasst: 9. Juni 2010 12:43
hi,
ich sitze seit einer weile vor folgendem problem und habe leider noch keinen erfolgversprechenden Ansatz gefunden:
ich habe:
- ein QTreeView mit QStandardItemModel
- darin gibt es 3 spalten, also auch 3 "ebenen" (root -> parent -> child -> child)
- alle items (QStandardItem) haben als data(Qt::UserRole + 1) einen pointer auf eine struktur gespeichert, die u.A. einen index enthaelt
- nun sollen jeweils alle direkten children unter einem parent item nach diesem enthaltenen index aus der itemData sortiert werden
ich habe versucht:
1. QSortFilterModel abzuleiten und die lessThan-methode neu zu implementieren; allerdings wird diese Methode niemals ausgefuehrt, obwohl das model und sein sourceModel richtig gesetzt sein sollten und ich konnte noch nicht herausfinden, warum ... (lessThan() wird nichtmal aufgerufen, wenn ich per hand QSortFilterModel::sort(col) ausfuehre ...
2. eine eigene sort-methode zu schreiben in dem dialog, der das alles enthaelt; was mir fehlt, ist lediglich die moeglichkeit, den index (vor allem row) eines QStandardItems zu aendern oder irgendwie anders die childen eines QStandardItem beliebig anzuordnen
und nun steh ich da und weiss nicht so richtig weiter ... ich hoffe, mir kann hier jemand weiterhelfen. so schwer kann es nicht sein und ich denke, ich habe nur irgendetwas ganz einfaches uebersehen.
vielen dank im voraus!
mfg
julian
ich sitze seit einer weile vor folgendem problem und habe leider noch keinen erfolgversprechenden Ansatz gefunden:
ich habe:
- ein QTreeView mit QStandardItemModel
- darin gibt es 3 spalten, also auch 3 "ebenen" (root -> parent -> child -> child)
- alle items (QStandardItem) haben als data(Qt::UserRole + 1) einen pointer auf eine struktur gespeichert, die u.A. einen index enthaelt
- nun sollen jeweils alle direkten children unter einem parent item nach diesem enthaltenen index aus der itemData sortiert werden
ich habe versucht:
1. QSortFilterModel abzuleiten und die lessThan-methode neu zu implementieren; allerdings wird diese Methode niemals ausgefuehrt, obwohl das model und sein sourceModel richtig gesetzt sein sollten und ich konnte noch nicht herausfinden, warum ... (lessThan() wird nichtmal aufgerufen, wenn ich per hand QSortFilterModel::sort(col) ausfuehre ...
2. eine eigene sort-methode zu schreiben in dem dialog, der das alles enthaelt; was mir fehlt, ist lediglich die moeglichkeit, den index (vor allem row) eines QStandardItems zu aendern oder irgendwie anders die childen eines QStandardItem beliebig anzuordnen
und nun steh ich da und weiss nicht so richtig weiter ... ich hoffe, mir kann hier jemand weiterhelfen. so schwer kann es nicht sein und ich denke, ich habe nur irgendetwas ganz einfaches uebersehen.
vielen dank im voraus!
mfg
julian