Logo des digitalen Schulbuchs inf-schule.de. Schriftzug in Zustandsübergangsdiagramm eines endlichen Automaten.

Dialogfenster

Hinweis

Tkinter stellt für zahlreiche Standarddialoge Hilfsmittel bereit. Wir betrachten hier nur einen dieser Standarddialoge. Weitere Gestaltungsmöglichkeiten musst du in einem Nachschlagewerk recherchieren.

Ein Datei-Dialog

Wir betrachten eine grafische Benutzeroberfläche mit einem Textfeld.

Anwendungsfenster

Wenn der Benutzer die Schaltfläche mit der Beschriftung "speichern" anklickt, dann soll sich ein Dialogfenster zum Speichern öffnen und den Benutzer bei der Festlegung des Speicherorts und Dateinamens unterstützen.

Anwendungsfenster

Entsprechend soll der Benutzer beim Laden einer Datei unterstützt werden, wenn er die Schaltfläche mit der Beschriftung "laden" anklickt.

Das folgende Programm zeigt, wie man solche Dialogfenster auf einfache Weise erzeugen kann.

from tkinter import *
# Ereignisbehandlung

def buttonLadenClick():
    datei = filedialog.askopenfile()
    textfeld.delete('1.0', 'end')
    if datei:
        textfeld.insert(1.0, datei.read())
        datei.close()

def buttonSpeichernClick():
    datei = filedialog.asksaveasfile()
    if datei:
        datei.write(textfeld.get('1.0', 'end'))
        datei.close()
        
# Fenster
tkFenster = Tk()
tkFenster.title('BMI')
tkFenster.geometry('300x240')
# Text
textfeld = Text(master=tkFenster, width=32, height=12, wrap='word')
textfeld.place(x=8, y=8)
scrollbar = Scrollbar(master=tkFenster)
scrollbar.place(x=280, y=8, width=10, height=197)
textfeld.config(yscrollcommand=scrollbar.set)
scrollbar.config(command=textfeld.yview)
# Programm laden
buttonLaden = Button(master=tkFenster, text='laden', command=buttonLadenClick)
buttonLaden.place(x=8, y=215, width=90, height=20)
# Programm speichern
buttonSpeichern = Button(master=tkFenster, text='speichern', command=buttonSpeichernClick)
buttonSpeichern.place(x=106, y=215, width=90, height=22)
# Aktivierung des Fensters
tkFenster.mainloop()

Aufgabe 1

Teste das Programm.

X

Fehler melden

X

Suche