Ich muss auf eine Drag-and-Drop-Neuordnung von Elementen in QListWidget reagieren. Ich kann kein QEvent finden. Jede Hilfe wäre willkommen!Python: Capture-Umordnungsereignis in einem QListWidget?
ich eine event Routine bin mit Ereignissen in meinem GUI zu erfassen:
from PyQt4 import QtGui
from PyQt4 import QtCore
from PyQt4.QtCore import *
from PyQt4.QtGui import *
def eventFilter(self, sourceObj, event):
if event.type()== QtCore.QEvent.Drop:
print("got to drop event")
(processing code here)
Vielleicht ist dieses Ereignis nicht Nachbestellung von Positionen auf einer Drag-and-Drop auslöst, weil die Drag & drop ist innerhalb des Widgets (z. B. wird nichts von außerhalb des Widgets darauf fallengelassen)?
Ich habe versucht QtCore.QEvent.Drop
und QtCore.QEvent.MouseButtonRelease
ohne Erfolg. Welches Ereignis sollte ich verwenden?
(Ich verwende Python3, PyQt4, auf Ubuntu 16.10. Mein eventRoutineArbeiten für andere Aktionen in der GUI wie Klicks, Lost-Focus-usw.)
Versuchen Sie, den Ereignisfilter im QListWidget-Ansichtsfenster zu installieren – Schollii
@Schollii Vielen Dank. Durch die Installation des Ereignisfilters im Ansichtsfenster() wurde das Ereignis ausgelöst. Das Problem wurde dann, dass QT die Neuordnung von QItems im QListWidget erst nach dem Ereignis verarbeitet. Ich habe jedoch eine Lösung gefunden: Verwenden Sie das ChildRemoved-Ereignis. Anscheinend sendet QT dieses Ereignis per Drag-and-Drop-Umordnung. – trinkner