[gelöst] Sortieren von Zahlen in QTable
[gelöst] Sortieren von Zahlen in QTable
Hallo,
habe das Problem, das QTable nur Strings richtig sortiert, ich müsste eine Spalte mit Zahlen sortieren. Wenn ich die Zahl umwandle mit führenden Nullen (also aus 4,50 wird 0000450) dann klappt das, schaut aber nicht gut aus. Sobald man die führenden Nullen wieder rückgängig macht, wird leider neu sortiert.
Danke für eure Tipps
Steffen
habe das Problem, das QTable nur Strings richtig sortiert, ich müsste eine Spalte mit Zahlen sortieren. Wenn ich die Zahl umwandle mit führenden Nullen (also aus 4,50 wird 0000450) dann klappt das, schaut aber nicht gut aus. Sobald man die führenden Nullen wieder rückgängig macht, wird leider neu sortiert.
Danke für eure Tipps
Steffen
-
- Beiträge: 40
- Registriert: 4. Oktober 2004 16:26
-
- Beiträge: 1213
- Registriert: 2. Dezember 2004 10:54
- Kontaktdaten:
Oder füge den Zahlenwert + Zahl X, das alle die gleiche länge haben als nicht sichtbare Spalte an und Sortiere nach der Spalte. Das kann man auch in qlistview machen.
Zuletzt geändert von FlorianBecker am 4. Oktober 2005 10:48, insgesamt 1-mal geändert.
-
- Beiträge: 40
- Registriert: 4. Oktober 2004 16:26
sauberes Desgin....
Da hast du schon recht, aber es funktioniert halt....
-
- Beiträge: 1213
- Registriert: 2. Dezember 2004 10:54
- Kontaktdaten:
Naja, also so faul ist der Trick nicht, selbst in den Qt Examples wird es mit QListView so verwendet, wie ich es gesagt habe. In QTable mag das anders sein, aber meine Einstellung ist immer die folgende:
1. Es muss funktionieren
2. Es muss leicht verständlich für andere sein
3. Qt ist auch nicht perfekt
4. Warum mach ich nichtmal wieder einen Code Clean Up.
1. Es muss funktionieren
2. Es muss leicht verständlich für andere sein
3. Qt ist auch nicht perfekt
4. Warum mach ich nichtmal wieder einen Code Clean Up.
Zuletzt geändert von FlorianBecker am 4. Oktober 2005 10:48, insgesamt 1-mal geändert.
-
- Beiträge: 1213
- Registriert: 2. Dezember 2004 10:54
- Kontaktdaten:
Programmierer sind faul.
Zuletzt geändert von FlorianBecker am 4. Oktober 2005 10:48, insgesamt 1-mal geändert.
Sortierproblem durch Reimplementierung von QTableItem::key
Hallo,
ich hatte ebenfalls ein Problem mit der Sortierung,
ich habe es durch die Reimplementierung von QString QTableItem::key () const geloest.
Der Ansatz in meinem Fall war, daß ich in meiner Tabellemanche Spalten numerisch,
andere aber alphabetisch sortieren möchte, auch wenn die Zellen in diesn Spalten teilweise oder ausschließlich Zahlen enthalten.
So sieht meine Lösung aus:
Mag nicht schön sein, aber es macht was ich will
Viele Grüße
Christoph
ich hatte ebenfalls ein Problem mit der Sortierung,
ich habe es durch die Reimplementierung von QString QTableItem::key () const geloest.
Der Ansatz in meinem Fall war, daß ich in meiner Tabellemanche Spalten numerisch,
andere aber alphabetisch sortieren möchte, auch wenn die Zellen in diesn Spalten teilweise oder ausschließlich Zahlen enthalten.
So sieht meine Lösung aus:
Code: Alles auswählen
QString QTableItem::key () const
{
bool string_to_double_ok;
// Die Spalten 3, 4 und 5 sollen numerisch sortiert werden, alle anderen Spalten alphabetisch
if (QTableItem::col() == 3 || QTableItem::col() == 4 || QTableItem::col() == 5 )
{
// Den im QTableItem enthaltenen Text in eine Double konvertierten und mit führenden Nullen auf 16 Stellen auffuellen
QString sortierstring = QString().sprintf("%016f", QTableItem::text().toDouble(&string_to_double_ok));
return(sortierstring);
}
else
{
return (QTableItem::text());
}
}
Viele Grüße
Christoph