QTreeWidget Sortierung

Alles rund um die Programmierung mit Qt
Locke
Beiträge: 24
Registriert: 14. Juni 2008 14:31

QTreeWidget Sortierung

Beitrag von Locke »

Hallo zusammen!

Habe folgendes Problem:
In der ersten Spalte meines QTreeWidgets habe ich Zahlen und möchte nach dieser Spalte sortieren. Dabei kommt dann Folgendes heraus

1
10
11
2
3
4
5
6
7
8
9

Hat jemand eine Idee, wie ich richtig sortieren kann?

Gruß
Locke
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Bist du dir sicher, daß das Zahlen sind und keine Strings?
Locke
Beiträge: 24
Registriert: 14. Juni 2008 14:31

Beitrag von Locke »

Jo sind Strings, aber wie soll ich da Integer rein kriegen? Über setText() kann ich ja nur Strings in ein QTreeWidgetItem schreiben...
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Verwende statt dessen setData(...)
Locke
Beiträge: 24
Registriert: 14. Juni 2008 14:31

Beitrag von Locke »

Welche role muss ich denn nehmen? Mit Qt::DisplayRole funktioniert es jedenfalls nicht. Und die anderen hören sich nicht passend an.
dontinelli
Beiträge: 146
Registriert: 22. September 2006 20:53

Beitrag von dontinelli »

Würde mich auch interessieren, insbesondere im Zusammenhang mit Daten. Ich würde gerne Daten in gut lesbarem Format einfügen ("dddd, dd.MM.yyyy") und es sollte nach Datum sortiert sein. Bis jetzt habe ich das immer händisch sortiert, wäre aber natürlich schöner, wenn das direkt vom Widget übernommen würde...
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

EditRole schon mal getestet?
solarix
Beiträge: 1133
Registriert: 7. Juni 2007 19:25

Beitrag von solarix »

Mit Qt::DisplayRole funktioniert es jedenfalls nicht
Qt:::DisplayRole funktioniert bei mir tadellos...
Hat jemand eine Idee, wie ich richtig sortieren kann?
Operator

Code: Alles auswählen

virtual bool QTreeWidgetItem::operator< ( const QTreeWidgetItem & other ) const
reimplementieren...
Locke
Beiträge: 24
Registriert: 14. Juni 2008 14:31

Beitrag von Locke »

Mit Qt::EditRole funktioniert es auch nicht. Muss ich wohl wirklich den Operator überschreiben.
Qt:::DisplayRole funktioniert bei mir tadellos...
Was funktioniert bei dir tadellos?
solarix
Beiträge: 1133
Registriert: 7. Juni 2007 19:25

Beitrag von solarix »

Mit Qt::DisplayRole funktioniert es jedenfalls nicht.
[...]
Was funktioniert bei dir tadellos?
Weil "funktioniert nicht" keine Fehlerbeschreibung ist, ging ich davon aus, dass du das Einfügen der Daten mittels setData() gemeint hast... (mit der Sortierung hat die Rolle IMHO nichts am Hut). Aber an deiner Antwort zu Urteilen, hast du wohl die Sortierung gemeint...
Locke
Beiträge: 24
Registriert: 14. Juni 2008 14:31

Beitrag von Locke »

Ja meinte die Sortierung. Also Überschreiben ist die letzte Möglichkeit?
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Ok, mit dem QTreeWidget funktionierts so nicht, aber du kannst stattdessen ein QTreeView mit einem QStandardItemModel verwenden. Das funktioniert hier...
RHBaum
Beiträge: 1436
Registriert: 17. Juni 2005 09:58

Beitrag von RHBaum »

Grad fuer solche faelle sollte man wirklich das Modelbasierende zeugs nehmen ....
grad beim sortieren, und spaeter bei dynamisch wechselnder sortierung zur laufzeit tut man sich mit den models viel leicher (wenn man mal das prinzip der models und proxy models verstanden hat)

Ciao ...
Locke
Beiträge: 24
Registriert: 14. Juni 2008 14:31

Beitrag von Locke »

Habe leider nicht die Möglichkeit, jetzt noch auf Model umzustellen. Deshalb muss es irgendwie so klappen...
Locke
Beiträge: 24
Registriert: 14. Juni 2008 14:31

Beitrag von Locke »

Hat noch jemand einen Vorschlag, wie ich das ohne Model hinkriegen kann?
Antworten