sortItems

Verschiedenes zu Qt
Antworten
wschbr
Beiträge: 7
Registriert: 5. Dezember 2010 19:11

sortItems

Beitrag von wschbr »

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
padreigh
Beiträge: 340
Registriert: 13. Mai 2010 10:06

Beitrag von padreigh »

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
Patrick (QtCreator 1.3.1, Qt 4.6.3)
---
template = subdirs
wschbr
Beiträge: 7
Registriert: 5. Dezember 2010 19:11

Beitrag von wschbr »

Besten Dank!
Ich werde das gleich mal versuchen umzusetzen ;)
wschbr
Beiträge: 7
Registriert: 5. Dezember 2010 19:11

Beitrag von wschbr »

Funktioniert bestens!
Vielen Dank! :D
Antworten