Kirsche
19-10-2005, 22:43
Hallo Leute,
ich habe QTableItem abgeleitet, um die Hintergrundfarbe unterschiedlich wählen zu können. Meine Klasse heißt TableItem. Diese Items füge in nun in eine Tabelle ein.
TableItem* item;
for( int i = 0; i < string.length(); i++ )
{
item = new TableItem( table, QTableItem::WhenCurrent, (QString)referenceSequence[i], (QString)referenceSequence[i] );
item->setRow( 0 );
table->setItem( 0, i, item );
}
Da ich die Items mit "new" erstellt habe, muss ich sie löschen, es sei denn, die Tabelle wird gelöscht, denn dann werden sie auch gelöscht. Bisher richtig?
Nun das Problem: Der Inhalt der Tabelle wird dynamisch verändert, je nachdem was der Benutzer auswählt. Die Tabelle wird also nicht gelöscht, aber die Items werden ungültig. Ich setze die Anzahl der Reihen zurück auf 0:
"table->setNumRows( 0 )"
Anschließend füge ich die neuen Zeilen ein, aber alles in derselben Tabelle.
"sequenceTable->setNumRows( sequenceTable->numRows() + 1 )"
Erzeuge ich so Pointer ins Nirvana, oder werden meine Items gelöscht, wenn ich die Zeilenanzahl auf 0 setze? Wenn nicht, wann und wie lösche ich sie dann? Sie haben ja keinen Namen, sondern stecken in der Tabelle. :confused:
Vielen Dank,
ich habe QTableItem abgeleitet, um die Hintergrundfarbe unterschiedlich wählen zu können. Meine Klasse heißt TableItem. Diese Items füge in nun in eine Tabelle ein.
TableItem* item;
for( int i = 0; i < string.length(); i++ )
{
item = new TableItem( table, QTableItem::WhenCurrent, (QString)referenceSequence[i], (QString)referenceSequence[i] );
item->setRow( 0 );
table->setItem( 0, i, item );
}
Da ich die Items mit "new" erstellt habe, muss ich sie löschen, es sei denn, die Tabelle wird gelöscht, denn dann werden sie auch gelöscht. Bisher richtig?
Nun das Problem: Der Inhalt der Tabelle wird dynamisch verändert, je nachdem was der Benutzer auswählt. Die Tabelle wird also nicht gelöscht, aber die Items werden ungültig. Ich setze die Anzahl der Reihen zurück auf 0:
"table->setNumRows( 0 )"
Anschließend füge ich die neuen Zeilen ein, aber alles in derselben Tabelle.
"sequenceTable->setNumRows( sequenceTable->numRows() + 1 )"
Erzeuge ich so Pointer ins Nirvana, oder werden meine Items gelöscht, wenn ich die Zeilenanzahl auf 0 setze? Wenn nicht, wann und wie lösche ich sie dann? Sie haben ja keinen Namen, sondern stecken in der Tabelle. :confused:
Vielen Dank,