Seite 1 von 1
QListWidget Eintrag verschieben
Verfasst: 1. Oktober 2009 10:33
von reinki0013
Hallo Zusammen!
ich würde gerne bei meinem QListWidget das aktuell ausgewählte Item in ein anderes QListWidget ziehen (so das es beim 1. QListWidget weg ist und beim 2. eingefügt wird)...
Wie kann ich das umsetzen bzw. hat das schon jemand versucht?
besten dank im voraus
lg
Verfasst: 1. Oktober 2009 12:13
von upsala
Drag- und Drop nennt sich das und läßt sich in der Doku unter Model/View-Programming finden...
Verfasst: 27. April 2010 16:12
von reinki0013
Hallo zusammen!
ich habe 2 QListWidgets...
bei denen habe ich folgende Flags gesetzt:
Code: Alles auswählen
listwidget_yellow->setSelectionMode(QAbstractItemView::SingleSelection);
listwidget_yellow->setDragEnabled(true);
listwidget_yellow->viewport()->setAcceptDrops(true);
listwidget_yellow->setDropIndicatorShown(true);
jetzt würde ich ganz einfach, ganz simple einen eintrag in das andere Widget verschieben und abfragen ob dieser eintrag schon vorhanden ist...
das verschieben funktioniert dank der flags prima...aber leider bräuchte ich einen event oder was auch immer, damit ich überprüfen kann ob es diesen eintrag schon gibt...
gibt es da fertige methoden dafür?
wie sollte ich das am besten machen??
Verfasst: 27. April 2010 21:20
von 24dan
event?
Also meine Idee wäre:
1. conncet des emfangs QListWidget Ereignis changed() auf die Funktion die dann ne Prüfung macht.
2.a Funktion mit Prüfung greift den Inhalt vom Empfangs QListWidget und den Inhalt des Drops ab und vergleicht es?
2.b Oder wenn das Item das mit drecks and Drops verschoben wurde im Emfangs QListWidget vorhanden ist einfach alles in eine QStringlist werfen und die Doppelten löschen.

Verfasst: 28. April 2010 08:09
von reinki0013
24dan hat geschrieben:event?
Also meine Idee wäre:
1. conncet des emfangs QListWidget Ereignis changed() auf die Funktion die dann ne Prüfung macht.
2.a Funktion mit Prüfung greift den Inhalt vom Empfangs QListWidget und den Inhalt des Drops ab und vergleicht es?
2.b Oder wenn das Item das mit drecks and Drops verschoben wurde im Emfangs QListWidget vorhanden ist einfach alles in eine QStringlist werfen und die Doppelten löschen.

moin,
also ganz verstehen tu ich es nicht...
wie gesagt, ich würde gerne abfangen wenn ich mittels drag&drop einen eintrag von einem dynamisch angelegten QListWidget in ein anderes QListWidget verschiebe...
Denn mittels den Signalen currentItemChanged, itemChanged usw. komme ich nicht in die funktion...
Verfasst: 28. April 2010 08:48
von reinki0013
Nochmals in aller kürze:
ich habe ein vertical Layout in dem ich dynamisch 3 oder 2 QListWidgets anlege...ich will dann zwischen diesen 3 QListWidgets Einträge verschieben können und überprüfen ob es diese einträge schon gibt.
dafür bräuchte ich ein Signal oder ein Event...
da muss es doch etwas geben, das haben doch sehr viele anwendungen...
lg
Verfasst: 28. April 2010 13:23
von reinki0013
hi nochmals,
also ich habs jetzt dank eines beispiels in einem buch hinbekommen das ich in die Funktion dropEvent komme wenn ich etwas auf mein QListWidget ziehe...
jetzt müsste ich noch herausfinden von wo ich den Eintrag "weggezogen" habe...also praktisch den absender herausfinden...
kann mir da jemand einen tipp geben??
wie löst ihr das?
Verfasst: 28. April 2010 17:19
von 24dan
Hast Du mal versucht das QWidget * QDropEvent::source () const zu verwenden um herasuzubekommen von WO das Element kommt?
Sind denn nach dem Drag&Drop bei deinen QListWidgets doppelte Einträge vorhanden?