Hallo,
ich habe ein QTreeWidget mit mehreren Elementen und jeweils einer Nr. in der ersten Spalte. Nun würde ich gerne die Zeilen der Nummer nach sortieren und verwende dazu sortItems.
lvWP->sortItems(0, Qt::AscendingOrder);
Allerdings sortiert er bei beispielsweise 13 Einträgen wie folgt:
1, 10, 11, 12, 13, 2, 3, 4....
Könnte mir jmd dabei helfen?
Die Reihe sollte natürlich so aussehen: 1, 2, 3....
Grüße,
Fabian
sortItems
Das passiert weil er Lexigrafisch sortiert ... guck mal ob du der sortItems eine Role verpassen kannst, wenn ja, dann Speicher zusätzlich zur DisplayRole eine SortRole mit integern und lass die SortFunktion darauf los ...
Edit: Gibt die API nicht her, das geht nur wenn du ein QTableView mit einem QStandardItemModel benutzt ... dann also Umweg: Verpass der Tabelle eine neue Column in die du reinschreibst:
QString(QString(20,'0')+denInhaltDerAnderenColumn).right(20) ... die setzt du dann mit setColumnHidden ( int, bool ) auf versteckt und nutzt sie im versteckten Zustand zum Sortieren ... da da dann drinsteht
00000000000000000001
00000000000000000002
00000000000000000003
...
00000000000012345667
...
99999999999999999999
sortiert er dann richtig ... unschön aber geht - oder du Steigst auf QStandardItemModel + QTableView oder gleich auf QAbstractItemModel-Ableiten + QSortFilterProxyModel + QTableView.
hth
Edit: Gibt die API nicht her, das geht nur wenn du ein QTableView mit einem QStandardItemModel benutzt ... dann also Umweg: Verpass der Tabelle eine neue Column in die du reinschreibst:
QString(QString(20,'0')+denInhaltDerAnderenColumn).right(20) ... die setzt du dann mit setColumnHidden ( int, bool ) auf versteckt und nutzt sie im versteckten Zustand zum Sortieren ... da da dann drinsteht
00000000000000000001
00000000000000000002
00000000000000000003
...
00000000000012345667
...
99999999999999999999
sortiert er dann richtig ... unschön aber geht - oder du Steigst auf QStandardItemModel + QTableView oder gleich auf QAbstractItemModel-Ableiten + QSortFilterProxyModel + QTableView.
hth