Seite 1 von 2
QTreeWidget Sortierung
Verfasst: 2. September 2008 19:28
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
Verfasst: 2. September 2008 19:43
von upsala
Bist du dir sicher, daß das Zahlen sind und keine Strings?
Verfasst: 2. September 2008 20:04
von Locke
Jo sind Strings, aber wie soll ich da Integer rein kriegen? Über setText() kann ich ja nur Strings in ein QTreeWidgetItem schreiben...
Verfasst: 2. September 2008 20:38
von upsala
Verwende statt dessen setData(...)
Verfasst: 2. September 2008 22:55
von Locke
Welche role muss ich denn nehmen? Mit Qt::DisplayRole funktioniert es jedenfalls nicht. Und die anderen hören sich nicht passend an.
Verfasst: 2. September 2008 23:37
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...
Verfasst: 3. September 2008 09:05
von upsala
EditRole schon mal getestet?
Verfasst: 3. September 2008 09:13
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...
Verfasst: 3. September 2008 12:44
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?
Verfasst: 3. September 2008 13:02
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...
Verfasst: 3. September 2008 14:36
von Locke
Ja meinte die Sortierung. Also Überschreiben ist die letzte Möglichkeit?
Verfasst: 3. September 2008 20:05
von upsala
Ok, mit dem QTreeWidget funktionierts so nicht, aber du kannst stattdessen ein QTreeView mit einem QStandardItemModel verwenden. Das funktioniert hier...
Verfasst: 4. September 2008 10:36
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 ...
Verfasst: 4. September 2008 15:22
von Locke
Habe leider nicht die Möglichkeit, jetzt noch auf Model umzustellen. Deshalb muss es irgendwie so klappen...
Verfasst: 5. September 2008 11:50
von Locke
Hat noch jemand einen Vorschlag, wie ich das ohne Model hinkriegen kann?