Ich habe QStrings, von denen je 4 zusammengehören.
Die will ich jetzt zeilenweise anzeigen.
Dazu nutze ich QTableWidget und QTableWidgetItems, oder?
Soll ich die Items selbst in einer z.B. QList verwalten,
oder macht das das QTableWidget?
Ist mir irgendwie nicht klar...
Und wenn ich QTableWidget::clear() aufrufe,
löscht er dann nur seine Kopien der Adresse oder die Objekte?
HENNING
[gelöst] Wo QWidgetTableItems verwalten?
Ich probiere es gerade so:
In einer QList verwalte ich die Adresse der Items
später dann...
(immer wenn die Tabelle aktualisiert werden soll)
Wenn ich vor die Schleifen ein tableWidget->clear() setze,
stürzt er beim wiederholten Aufruf der Schleifen ab.
Kann es also sein, dass er durch das clear() den Speicher freigibt?
Mir ist nicht klar, was er mit den Adressen der Items eigentlich macht
HENNING
In einer QList verwalte ich die Adresse der Items
Code: Alles auswählen
list << new QTableWidgetItem(lineEdit_1->text());
list << new QTableWidgetItem(lineEdit_2->text());
list << new QTableWidgetItem(lineEdit_3->text());
list << new QTableWidgetItem(lineEdit_4->text());(immer wenn die Tabelle aktualisiert werden soll)
Code: Alles auswählen
for (int row = 0; row < list.size() / 4; ++row)
{
for (int column = 0; column < 4; ++column)
{
tableWidget->setItem(row, column, list[row * 4 + column]);
}
}stürzt er beim wiederholten Aufruf der Schleifen ab.
Kann es also sein, dass er durch das clear() den Speicher freigibt?
Mir ist nicht klar, was er mit den Adressen der Items eigentlich macht
HENNING
Ich würde gerne noch einmal etwas Aufmerksamkeit auf meine Frage lenken...
Was passiert mit den Items in einem QWidgetTable,
wenn ich QWidgetTable::clear() aufrufe?
Stimmt es, dass der Table die Items selbst verwaltet
und sich daher darum kümmert, dass deren Speicherplatz freigegeben wird?
Ich hab mit das mittels der Doku nicht erklären können
HENNING
Was passiert mit den Items in einem QWidgetTable,
wenn ich QWidgetTable::clear() aufrufe?
Stimmt es, dass der Table die Items selbst verwaltet
und sich daher darum kümmert, dass deren Speicherplatz freigegeben wird?
Ich hab mit das mittels der Doku nicht erklären können
HENNING
-
FlorianBecker
- Beiträge: 1213
- Registriert: 2. Dezember 2004 10:54
- Kontaktdaten:
Ich wollte diesen Thread gerne noch beenden
Für alle, die es interessiert:
Es ist tatsächlich so, dass beim Aufruf von QTableWidget::clear()
alle Items gelöscht werden.
Auch wenn bei setItem(...) schon ein Item an der gewünschten Stelle
vorhanden ist, wird dieses gelöscht.
Der Table kümmert sich also komplett um die übergebenen Adressen.
Quelle: qtablewidget.cpp (QT 4.0.1)
HENNING
Für alle, die es interessiert:
Es ist tatsächlich so, dass beim Aufruf von QTableWidget::clear()
alle Items gelöscht werden.
Auch wenn bei setItem(...) schon ein Item an der gewünschten Stelle
vorhanden ist, wird dieses gelöscht.
Der Table kümmert sich also komplett um die übergebenen Adressen.
Quelle: qtablewidget.cpp (QT 4.0.1)
HENNING