Moin,
ich habe folgene Daten in der Datenbank stehen. Nun möchte ich gerne über die Spalten das Datum sortieren. Wenn ich nach Datum sortiere ist die Sortierung so:
Fahrzeug | Datum
f1 | 03-07-2010
f2 | 09-10-2010
f3 | 19-05-2010
f4 | 25-07-2010
Nun möchte ich gerne, dass das Datum korrekt sortiert wird. Jetzt Sortiert mir Qt das Datum als String. 03,09,19,25...
Wie bekomme ich es hin, dass das Datum richtig formatiert wird? Gibt es für die Tabellen einen Renderer oder so etwas ähnliches? Ich habe leider noch nichts gefunden.
Könnte ich statt QWidgetTableItems auch QDateTime-Items einfügen? Würde dann die Tabelle richtig sortiert werden?
Könnte man vielleicht ganze Spalten ein Format zuweisen? Beispielsweise Datum?
Ich würde mich freuen, wenn ihr mir bei meinem Problem weiter helfen könnten. Vielen Dank im voraus
Gruß
Wirbelwurm
QTableWidget Datum-Sortieren
-
- Beiträge: 11
- Registriert: 15. Juli 2010 15:13
- Kontaktdaten:
Moin,
wie erstellst du denn die Items?
Verwendest du:
- QTableWidgetItem(const QString &text, int type = Type)
Wenn das der Fall ist, probier mal folgendes:
So müsste das eigentlich korrekt sortiert werden. Funktioniert auch mit anderen Typen wie z.B. int, wenn Zahlen sortiert werden sollen.
wie erstellst du denn die Items?
Verwendest du:
- QTableWidgetItem(const QString &text, int type = Type)
Wenn das der Fall ist, probier mal folgendes:
Code: Alles auswählen
QTableWidgetItem *pItem = new QTableWidgetItem();
QDateTime dateTime; // Für das jeweilige Datum
pItem->setData(Qt::DisplayRole, dateTime);
pTableWidget->setItem(row, column, pItem);
-
- Beiträge: 11
- Registriert: 15. Juli 2010 15:13
- Kontaktdaten:
Vielen Dank für die Antwort
Es hat geklappt!
Java-Code
Es hat geklappt!
Java-Code
Code: Alles auswählen
QTableWidgetItem pItem = new QTableWidgetItem();
QDateTime dateDb = QDateTime.fromString(rs.getString(i), "yyyy-MM-dd HH:mm:ss");
QDate dateTable = QDate.fromString(dateDb.toString("dd-MM-yyyy"), "dd-MM-yyyy");
pItem.setData(0,dateTable);
table.setItem(row, i - 1 , pItem);
-
- Beiträge: 146
- Registriert: 22. September 2006 20:53
Etwas umständlich. Schon mal QDateTime::date() angeschaut?