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.

  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.
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()

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:


© Kevin Maurizi

  • modul/m323/learningunits/lu03/aufgaben/callback.txt
  • Last modified: 2023/11/13 08:56
  • by 127.0.0.1