Hi,
ich habe ein ListWidget (QT4), das ich mit items fülle. Deren Reihenfolge soll per drag&drop veränderbar sein. Dazu müsste ich wahrscheinlich statt CopyAction MoveAction benutzen, da sonst das item verdoppelt wird. Ich weiß nur nicht wie ich das aktivieren könnte. Hat jemand einen Tip?
Gruß
QListWidget Qt::MoveAction statt Qt::CopyAction
Beispielsweise: (wenig elegant): in dem (von QListWidget abgeleitetem) Widget in dem du drops, den dropEvent wie folgt überladen, falls du, wenn kein Modifier (Shift/Alt/Strg) gedrückt wurde, einen Move statt einem Copy willst. Sollte als Beispiel ausreichen:
hilft dir das?
Elgrimm Esleborn
Code: Alles auswählen
void WIDGET::dropEvent ( QDropEvent *fp_event )
{
fp_event->setDropAction ( Qt::MoveAction );
if ( fp_event->keyboardModifiers ( ) == Qt::NoModifier )
{
if ( fp_event->dropAction ( ) == Qt::CopyAction )
fp_event->setDropAction ( Qt::MoveAction );
}else
fp_event->setDropAction ( Qt::CopyAction );
QListWidget::dropEvent ( fp_event );
}Elgrimm Esleborn
Glaube an eine Lösung, nur dann kannst du auch eine finden.
Re: QListWidget Qt::MoveAction statt Qt::CopyAction
Ich bin jetzt etwas verwirrt. Wenn Du die Reihenfolge innerhalb eines ListWidgets ändern willst, dann nimm takeItem und insertItem. Was hat das mit den Actions zu tun? Durchsuch mal die qt-interest Liste oder den Tasktracker. Da war mal ein Stückchen Code, in dem das gemacht wurde.janusius hat geschrieben:Deren Reihenfolge soll per drag&drop veränderbar sein. Dazu müsste ich wahrscheinlich statt CopyAction MoveAction benutzen, da sonst das item verdoppelt wird.
Hallo,
danke für die Tips!.
Ich dachte es ist am einfachsten mit ::MoveAction, da es ja im Pronzip schon funktioniert durchd ei Einstellungen im Designer mit dem Unterschied, dass er es eben kopiert und nicht verschiebt.
Ich muss jetzt doch die ein ListView benutzen ... und da ist die Sache leider wieder etwas komplizierter mit drag&drop.
danke für die Tips!.
Ich dachte es ist am einfachsten mit ::MoveAction, da es ja im Pronzip schon funktioniert durchd ei Einstellungen im Designer mit dem Unterschied, dass er es eben kopiert und nicht verschiebt.
Ich muss jetzt doch die ein ListView benutzen ... und da ist die Sache leider wieder etwas komplizierter mit drag&drop.