====== 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 ====
- **GUI-Layout**:
- Ein Label mit dem Text "Geben Sie Ihren Namen ein:"
- Ein Eingabefeld (Entry-Widget) für den Namen des Benutzers.
- Ein Button mit der Beschriftung "Begrüßen".
- **Funktionalität**:
- Wenn der Benutzer auf den "Begrüßen"-Button klickt, sollte unterhalb des Buttons eine Nachricht angezeigt werden, die lautet: "Hallo, [Name des Benutzers]!".
- 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**:
* [[https://docs.python.org/3/library/tk.html|Tkinter - Python Standard Library]]
**Tutorials**:
* [[https://www.tutorialspoint.com/python/python_gui_programming.htm|Tkinter Tutorial - TutorialsPoint]]
* [[https://realpython.com/courses/tkinter-course/|Tkinter Course - Real Python]]
**Online-Plattformen**:
* [[https://www.geeksforgeeks.org/python-tkinter-tutorial/|Tkinter Tutorials - GeeksforGeeks]]
**Interaktive Lernplattformen**:
* [[https://www.udemy.com/course/tkinter-gui-application-development-projects/|Tkinter GUI Application Development Projects - Udemy]]
* [[https://www.linkedin.com/learning/python-gui-development-with-tkinter-2|Python GUI Development with Tkinter - LinkedIn Learning]]
----
https://github.com/templates-python/m323-lu03-a09-callback
[[https://creativecommons.org/licenses/by-nc-sa/4.0/ch/|{{https://i.creativecommons.org/l/by-nc-sa/4.0/88x31.png}}]] (c) Kevin Maurizi