ich bin gerade dabei mich in PyQT4 einzuarbeiten
und entwickle eine kleine Applikation zum downloaden von einem FTP
(vereinfacht dargestellt).
Trotz das ich in PyQT4 entwickle ist mein Problem eher Design-technischer Natur als ein konkretes Implementierunsproblem.
Als Grundgerüst habe ich das mitgelieferte FTP-Client Beispiel genommen
und möchte diesem jetzt eine Funktion hinzufügen mit
der ich ganze Verzeichnisse mit allem Inhalt downloaden kann.
Dazu habe ich eine rekursive Funktion geschrieben
die ausgehend eines Verzeichnisses alle Unterverzeichnisse durchläuft
und alle Dateien einer Liste zum downloaden hinzufügt.
Das klappt zum testen lokal, mit normalen Dateien und Verzeichnissen, auch wunderbar.
Nun wollte ich den Code auf QT übertragen und habe dann festgestellt
das ftp.list() seine Ergebnisse als Signal listInfo sendet.
Ein einfaches:
Code: Alles auswählen
fileList = ftp.list()Als Slot dient in dem Beispiel-Tool die Funktion addToList(), welche
den Inhalt in einem QTreeWidget() ausgibt.
Nun könnte ich einfach einen zweiten Slot hinzufügen (downloadDir() z.b.)
und mit diesem arbeiten, mir ist jedoch schleierhaft wie ich so mit
einer rekursiven Funktion arbeiten soll, denn diese ruft sich ja immer selbst auf.
Weiterhin soll der Download per Button gestartet werden.
Wie unterscheide ich ob man einfach nur ein Verzeichniss wechselt (neues Verzeichniss muss ja auch ausgelesen werden, wieder listInfo()) oder etwas downloaden will? Als Sender gibt er ein QFtp-Objekt an.
Wie Ihr seht bin ich mit QT noch nicht sonderlich vertraut und mir fehlt einfach eine Anstoß wie man das umsetzen könnte.
Bin für jede Hilfe dankbar!
Grüße,
Chris