4 Stimmen

Ein externes Datei in ein QTreeWidget ziehen

Ich vermute, die Implementierung ist nicht ganz dasselbe für ein QTreeWidget, aber ich möchte in der Lage sein, eine externe Datei, insbesondere eine Bild- oder Filmdatei, in mein QTreeWidget zu ziehen. Ich versuche nicht, sie in ein bestimmtes QTreeWidgetItem zu ziehen, sondern einfach den Baum als Ganzes. Hier ist mein Code:

class moTree(QTreeWidget):
    def __init__(self, parent):
        super(moTree, self).__init__(parent)
        self.setMouseTracking(True)
        self.setAcceptDrops(True)

    def dragEnterEvent(self, event):
        if event.mimeData().hasUrls:
            event.accept()
        else:
            event.ignore()

    def dropEvent(self, event):
        if event.mimeData().hasUrls:
            for url in event.mimeData().urls():
                #Handle stuff here
        else:
            event.ignore()  

Das dragEnterEvent wird aufgerufen, aber das dropEvent nicht und ich erhalte das 'blockiert' Symbol. Irgendwelche Ideen warum?

6voto

ekhumoro Punkte 106167

Sie müssen QTreeWidget.mimeTypes neu implementieren, damit es eine Liste der Typen zurückgibt, die Sie unterstützen möchten:

def mimeTypes(self):
    return QtCore.QStringList([
        'text/uri-list',
        'application/x-qabstractitemmodeldatalist',
        ])

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X