Seite 1 von 1

Directory Chooser mit tkinter

Verfasst: Freitag 6. Juni 2014, 23:40
von mike2707
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

Re: Directory Chooser mit tkinter

Verfasst: Freitag 6. Juni 2014, 23:46
von BlackJack
@mike2707: Schau Dir mal das `tkinter.filedialog`-Modul an.

Re: Directory Chooser mit tkinter

Verfasst: Samstag 7. Juni 2014, 22:59
von mike2707
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

Re: Directory Chooser mit tkinter

Verfasst: Samstag 7. Juni 2014, 23:30
von mike2707
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

Re: Directory Chooser mit tkinter

Verfasst: Samstag 7. Juni 2014, 23:37
von 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.

Re: Directory Chooser mit tkinter

Verfasst: Montag 9. Juni 2014, 21:27
von mike2707
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