2016-11-09 2 views
1

Ich versuche, 2 verschiedene Dateipfade aus 2 verschiedenen Dateien zu erhalten und zu speichern (für die spätere Verwendung) (per Drag & Drop-Datei).Kivy Dateipfad von zwei verschiedenen Dateien abrufen

Ich mag 2 labeles machen und eine Taste:

   "Drop Here Report(label)" "Drop Here Source(label)" 


           "Run(button)" 

Ich brauche zu definieren, dass nur das Etikett war, ist der Benutzer die Datei ablegen kann, und ich kann es einfach nicht verstehen up ...

Hier ist mein Code so weit:

class WindowFileDropExampleApp(App): 

    def build(self): 
     Window.bind(on_dropfile=self.DropFile) 
     return 

    def DropFile(self, window, file_path): 
     print(file_path) 
     return 

if __name__ == '__main__': 
    WindowFileDropExampleApp().run() 

Dank.

Antwort

0

In Kivy's Repo gibt es eine example von wie man mehrere Widgets für das Herunterfallen von Dateien mit vielen Kommentaren tut, wie es geht.

Grundsätzlich müssen Sie eine "Master" -Funktion machen, die an on_dropfile Ereignis gebunden ist. Diese Funktion funktioniert mit einer Liste von Methoden, die aus benutzerdefinierten Widgets abgerufen werden. Die Liste muss über die Widgets zugänglich sein, so dass die App Klasse eine vernünftige Wahl scheint. Sie können es über get_running_app()

Solch ein Widget erhalten eine separate Methode haben Sie für ein einzelnes Ereignis on_dropfile standardmäßig verwenden würde, und wenn das on_dropfile Ereignis ausgelöst wird, wird es jede dieser Funktionen aus der Liste und Prüfung starten Wenn der Drop im Bereich des jeweiligen benutzerdefinierten Widgets war. Wenn ja, wird der Pfad in die Eigenschaft text gesetzt. Wenn nicht, erhält eine andere Funktion die Runde bis zum Ende der Liste.

Verwandte Themen