Mat
13-11-2005, 01:59
Hallo,
ich habe ein QTable in welchem der user wahlweise unterschiedliche zeilen löschen darf.
Er kann z,B auch nur Zeile 1 und 5 löschen.
Mein Problem besteht nun darin dass ich nicht einfach durch die ganze Tabelle gehen kann und alles was selektiert ist löschen darf...denn dadurch verliere ich die Konsistenz in der for-schleife...
QTable* tmp = new QTable(table->numRows(),table->numCols());
for(int i = 0; i < tmp_table->numRows();i++)
if(table->isRowSelected(i,TRUE))
table->removeRow(i);
ich habe dann als nächstes vresucht mit QMemArray zu arbeiten aber auch da ohne Erfolg:
QMemArray<int> arr(table->numRows());
QMemArray<int> tmp_arr = arr.copy();
for(uint i =0; i < tmp_arr.size(); i++)
{
if(table->isRowSelected(i,TRUE)) arr[i] = i;
else arr.truncate(i);
}
table->removeRows(arr);
Nun weiß ich nicht mehr so genau weiter...ich könnte mir einen Hash sozusagen aufbauen mit true/false flags mit den Zeilennummern als key aber ich glaube das geht doch bestimmt einfacher oder nicht ???
Danke für eure Ideen...
ich habe ein QTable in welchem der user wahlweise unterschiedliche zeilen löschen darf.
Er kann z,B auch nur Zeile 1 und 5 löschen.
Mein Problem besteht nun darin dass ich nicht einfach durch die ganze Tabelle gehen kann und alles was selektiert ist löschen darf...denn dadurch verliere ich die Konsistenz in der for-schleife...
QTable* tmp = new QTable(table->numRows(),table->numCols());
for(int i = 0; i < tmp_table->numRows();i++)
if(table->isRowSelected(i,TRUE))
table->removeRow(i);
ich habe dann als nächstes vresucht mit QMemArray zu arbeiten aber auch da ohne Erfolg:
QMemArray<int> arr(table->numRows());
QMemArray<int> tmp_arr = arr.copy();
for(uint i =0; i < tmp_arr.size(); i++)
{
if(table->isRowSelected(i,TRUE)) arr[i] = i;
else arr.truncate(i);
}
table->removeRows(arr);
Nun weiß ich nicht mehr so genau weiter...ich könnte mir einen Hash sozusagen aufbauen mit true/false flags mit den Zeilennummern als key aber ich glaube das geht doch bestimmt einfacher oder nicht ???
Danke für eure Ideen...