Directory Chooser mit tkinter

Fragen zu Tkinter.
Antworten
mike2707
User
Beiträge: 9
Registriert: Mittwoch 26. März 2014, 20:47

Hallo Leute,

ich versuche einen directory chooser zu basteln, allerdings mit mäßigen Erfolg.

Der User klickt auf einen Button und erhält ein Auswahlfeld. In diesem Feld gibt er das gewünschte Verzeichnis an

Gibt es so ein Chooser nicht als fertiges Widget. Habe schon gegoogelt aber nicht passendes gefunden.
Hat jemand einen Tipp?

Ich verwende Python 3.

Mit freundlichem Gruß
Mike
Zuletzt geändert von mike2707 am Freitag 6. Juni 2014, 23:46, insgesamt 1-mal geändert.
BlackJack

@mike2707: Schau Dir mal das `tkinter.filedialog`-Modul an.
mike2707
User
Beiträge: 9
Registriert: Mittwoch 26. März 2014, 20:47

Hallo BlackJack,

danke für die Infos. Habe es hinbekommen.

Habe in meinem Blog das Thema TKinter mal aufgenommen.
Zur Zeit erstelle ich eine Sammlung von Codebeispielen mit Umgang mit den Elementen und generell wie fange ich mit Tkinter an.
Vielleicht ist dies für Neulinge, so wie ich, hilfreich.

Hier der Link:
http://www.edv-spoor.de/blog.

Sollte es nicht erwünscht sein, dann bitte löschen.

PS: Dies soll keine versteckte Werbung für meine Firma sein, sondern eine Einstiegshilfe in TKinter.

Gruß
Mike
mike2707
User
Beiträge: 9
Registriert: Mittwoch 26. März 2014, 20:47

Den Directorychooser habe ich jetzt.

Code: Alles auswählen

# defining options for opening a directory
       self.dir_opt = options = {}
       options['initialdir'] = '/home/'
       # options['parent'] = self.master
       # options['title'] = 'This is a title'


    def askdirectory(self):
       directory = askdirectory(**self.dir_opt)
       print(directory)
       self.lbl.config(text="ausgewählter Ordner " + directory)
       
       print(directory )
       return directory
ich bekomme mit print(directory) auch das ausgewählte Verzeichnis angezeigt.

So weit, so gut.
Jetzt wollte ich abfragen, wieviele Dateien sich im Ordner befinden. Wie mache ich das.

Ich habe es mit directory.list() und mit directory.lenght() versucht, aber die Properties kennt er nicht.
Gibt es eine gute Doku bzw. Refernz?

Gruß
Mike
BlackJack

@mike2707: Wenn Anfänger anderen Anfängern etwas beibringen wollen besteht aber immer die Gefahr das sie Fehler oder komische Sachen machen, eben weil sie Anfänger sind und die Erfahrung fehlt.

Der Quelltext im Blog hält sich bei den Namensschreibweisen nicht an den Style Guide for Python Code.

Die `GUI`-Klasse „layoutet” sich selbst, das gehört sich nicht. Das macht keine andere Widget-Klasse. Was ist wenn der Aufrufer den Frame mit einem anderen Layouter platzieren möchte? Selbst wenn er `grid()` verwendet, möchte er vielleicht die Zelle und die anderen Argumente selber bestimmen.

Die Schaltfläche zum Abbrechen wird viel zu viele Zellen vom Rest entfernt eingesetzt.

Es gibt die Python-Dokumentation. Da suchst Du wahrscheinlich das `os` und `os.path` Modul. Beziehungsweise bei aktuellen 3er-Versionen gibt es ein `pathlib`-Modul das Du Dir anschauen könntest. Kann man für ältere Python-Versionen extern nachinstallieren.

Wenn Du Dir `directory` mal näher angeschaut hättest, dann wüsstest Du schon dass das einfach nur eine Zeichenkette ist, und die hat natürlich keine Methoden um Verzeichnisse aufzulisten, denn so eine Zeichenkette weiss ja nicht was für eine Bedeutung von ihrem Inhalt so hat, also über die reinen Zeichen hinaus.
mike2707
User
Beiträge: 9
Registriert: Mittwoch 26. März 2014, 20:47

Hallo,

ja, ich bin Anfänger.

Habe das jetzt so gelöst.

Code: Alles auswählen

def askdirectory(self):
        directory = askdirectory(**self.dir_opt)
        self.ausgewaehlter_pfad = os.listdir(directory)
        
        #Labelbeschriftung
        self.lbl_ausgewaehltes_verzeichnis.config(text="ausgewählter Ordner {}".format(directory))
        return directory
Danke.

Gruß
Mike
Antworten