Drag Drop in TableWidget
Verfasst: 5. März 2010 16:30
Hallo zusammen,
ich habe ein QTableWidget, in dem man Items mittels Drag und Drop verschieben können soll. Ich habe also das DragEnterEvent und das DropEvent reimplementiert, und darin dann jeweils den Text der angeklickten Items der Zeile zwischengespeichert und im DropEvent wieder eine neue Zeile mit Items, die den Text der alten erhalten, in das TableWidget eingefügt. Soweit funktioniert das alles, jedoch kommt es manchmal zu Fehlern, wenn ich zu schnell ein Item verscheiben möchte, was wahrscheinlich daran liegt dass das item von dem ich den text abspeichere, schon nicht mehr das ursprüngliche zu draggende item war. So sieht die Zwischenspeicherung aus:
Jetzt würde sich als nicht so schöne aber denke ich funktionierende lösung setStartDragTime eignen um diesen Fehler zu beheben, aber egal was ich einstelle es ändert sich nichts.
Habt ihr eine Idee??
ich habe ein QTableWidget, in dem man Items mittels Drag und Drop verschieben können soll. Ich habe also das DragEnterEvent und das DropEvent reimplementiert, und darin dann jeweils den Text der angeklickten Items der Zeile zwischengespeichert und im DropEvent wieder eine neue Zeile mit Items, die den Text der alten erhalten, in das TableWidget eingefügt. Soweit funktioniert das alles, jedoch kommt es manchmal zu Fehlern, wenn ich zu schnell ein Item verscheiben möchte, was wahrscheinlich daran liegt dass das item von dem ich den text abspeichere, schon nicht mehr das ursprüngliche zu draggende item war. So sieht die Zwischenspeicherung aus:
Code: Alles auswählen
void tableWidgetClass::dragEnterEvent(QDragEnterEvent *event){
currentRow = this->row(this->itemAt(event->pos()));
source0 = this->item(currentRow,0)->text();
iconSource = this->item(currentRow,0)->icon();
source1 = this->item(currentRow,1)->text();
source2 = this->item(currentRow,2)->text();
event->acceptProposedAction();
}
Habt ihr eine Idee??