LU03.A09 - GUI-Interaktion mit Callbacks in tkinter

Testfälle noch schreiben, dass Sie auf Github laufen und auch lokal die variable irgendwie heissen kann!

Erstellen Sie eine einfache GUI-Anwendung mit tkinter, die es einem Benutzer ermöglicht, seinen Namen in ein Eingabefeld einzugeben. Nach Eingabe seines Namens und Klick auf einen Button sollte eine Begrüßungsnachricht angezeigt werden.

Detaillierte Aufgabenstellung

  1. GUI-Layout:
    1. Ein Label mit dem Text “Geben Sie Ihren Namen ein:”
    2. Ein Eingabefeld (Entry-Widget) für den Namen des Benutzers.
    3. Ein Button mit der Beschriftung “Begrüßen”.
  2. Funktionalität:
    1. Wenn der Benutzer auf den “Begrüßen”-Button klickt, sollte unterhalb des Buttons eine Nachricht angezeigt werden, die lautet: “Hallo, [Name des Benutzers]!”.
    2. Verwenden Sie eine Callback-Funktion, um auf den Button-Klick zu reagieren und die Begrüßungsnachricht zu generieren.

Code-Vorlage

import tkinter as tk
 
class GreetingApp:
    """
    Eine einfache GUI-Anwendung, die es einem Benutzer ermöglicht, seinen Namen in ein Eingabefeld einzugeben.
    Nach Eingabe seines Namens und Klick auf einen Button wird eine Begrüßungsnachricht angezeigt.
    """
 
    def __init__(self, root):
        """
        Initialisiert die GUI-Komponenten.
 
        Args:
        - root (tk.Tk): Das Hauptfenster der Anwendung.
        """
        # TODO: Titel setzen und in root in self.root speichern
 
        # Label-Widget, das den Benutzer auffordert, seinen Namen einzugeben
        #TODO
 
        # Eingabefeld-Widget (Entry-Widget) für den Namen des Benutzers
        # TODO
 
        # Label-Widget für die Begrüßungsnachricht
        # Zu Beginn wird kein Text angezeigt
        # TODO
 
        # Button-Widget, das die greet_user-Methode aufruft, wenn es geklickt wird
        # TODO
 
    def greet_user(self):
        """
        Diese Methode wird aufgerufen, wenn der Benutzer auf den "Begrüßen"-Button klickt.
        Sie liest den Namen aus dem Eingabefeld aus und zeigt eine Begrüßungsnachricht unterhalb des Buttons an.
        """
        # Den eingegebenen Namen aus dem Entry-Widget holen
        # TODO
        # Begrüßungsnachricht generieren
        # TODO
        # Die Begrüßungsnachricht im Label-Widget anzeigen
        # TODO
 
 
if __name__ == '__main__':
    # Hauptfenster des GUI erstellen
    root = tk.Tk()
 
    # Instanz der GreetingApp-Klasse erstellen
    app = GreetingApp(root)
 
    # GUI-Event-Loop starten
    root.mainloop()

Hinweis

Callback-Funktion in tkinter:

In tkinter wird eine Funktion oder Methode als Callback verwendet, indem sie als Argument an ein GUI-Widget (z.B. Button) übergeben wird. Wenn ein bestimmtes Ereignis (z.B. ein Button-Klick) auftritt, wird diese Funktion aufgerufen.

Beispiel:

def my_callback():
    print('Callback wurde aufgerufen!')
 
button = tk.Button(root, text='Klicken Sie mich', command=my_callback)

In diesem Beispiel wird die Funktion my_callback aufgerufen, wenn der Benutzer auf den Button klickt.

Ressourcen zum Lernen von `tkinter`

Wenn Sie sich intensiver mit der GUI-Entwicklung in Python mit tkinter beschäftigen möchten, finden Sie hier einige empfohlene Ressourcen:

Offizielle tkinter Dokumentation:

Tutorials:

Online-Plattformen:

Interaktive Lernplattformen:


https://github.com/templates-python/m323-lu03-a09-callback

© Kevin Maurizi