CodeGym /Kurse /Python SELF DE /Arbeiten mit Labels und Textfeldern

Arbeiten mit Labels und Textfeldern

Python SELF DE
Level 49 , Lektion 3
Verfügbar

1. Widget "Label" (Label)

Heute machen wir weiter mit diesem großartigen Werkzeug und schauen uns Labels (Label) und Textfelder (Text) an. Ja, genau das brauchst du, damit deine Anwendung nicht nur anspruchsvolle Aufgaben erledigen, sondern auch diese erstaunlichen Errungenschaften mit den Nutzern teilen kann — sei es über kurze Nachrichten oder große Textmengen.

Bevor wir uns in unser Abenteuer mit Textfeldern stürzen, fangen wir mit etwas Einfacherem an — den Labels. Ein Label in Tkinter ist ein kleines und gemütliches Widget, das uns statische Informationen anzeigen lässt. Fast wie ein Sticker auf dem Kühlschrank, nur halt in deiner Anwendung. Kann für Überschriften, Beschreibungen und sogar ganze Lebensweisheiten genutzt werden.

Erstellen und Stylen von Labels

Ein Label in Tkinter zu erstellen ist einfacher, als eine neue Syntax in Programmiersprachen zu lernen (erinnerst du dich noch, wie schmerzhaft das am Anfang war?). Hier ein Beispielcode mit einem Label:

Python

import tkinter as tk

# Hauptfenster erstellen
root = tk.Tk()
root.title("Mein erstes Label")

# Label erstellen
label = tk.Label(root, text="Hallo, Welt!", font=("Arial", 14))
label.pack()

# Haupt-Ereignisschleife starten
root.mainloop()
  

Hier haben wir ein Label erstellt, das "Hallo, Welt!" sagt. Wie du sehen kannst, kann man Schriftart und Schriftgröße anpassen, was es sehr flexibel macht. Du kannst den Stil, die Größe und sogar die Farbe des Textes selbst auswählen, damit alles zu deinem Design passt.

2. Widget "Textfeld" (Text)

Jetzt, wo wir Labels kennengelernt haben, machen wir einen Schritt weiter und sprechen über Textfelder. Textfelder (Text) sind wie ein Notizbuch, das in deine Anwendung eingebaut ist. Sie ermöglichen das Anzeigen und Bearbeiten großer Textmengen. Das ist nützlich, wenn du dem Nutzer erlauben möchtest, mit umfangreichem Text zu interagieren, oder wenn du ihm einfach zeigen möchtest, wie viel Code du am Wochenende geschrieben hast.

Verwendung von Textfeldern

Hier ein Beispiel, wie man ein Textfeld erstellt und mit Text füllt:

Python

import tkinter as tk

# Hauptfenster erstellen
root = tk.Tk()
root.title("Textfeld")

# Textfeld erstellen
text = tk.Text(root, height=10, width=40)
text.pack()

# Mit Text füllen
text.insert(tk.END, "Vor langer Zeit, in einer weit entfernten Galaxie...\n")
text.insert(tk.END, "Dein Text hier...")

# Haupt-Ereignisschleife starten
root.mainloop()
  

Wie du im Beispiel siehst, können wir Text mit der Methode insert in das Textfeld einfügen. Der Parameter tk.END gibt an, dass der Text ans Ende des aktuellen Inhalts hinzugefügt werden soll.

Styling von Schriften und Texten

Für beide Widget-Typen können wir Textstile anpassen. Dazu gehören Schriftarten, Größen, Farben und vieles mehr. Hier ein Beispiel, wie das für ein Label und ein Textfeld gemacht werden kann:

Python

label = tk.Label(root, text="Hallo, Welt!", font=("Courier", 16, "bold"), fg="blue")
label.pack()

text.tag_configure("highlight", font=("Verdana", 12), foreground="red")
text.insert(tk.END, "Dieser Text wird hervorgehoben", "highlight")
  

Hier haben wir die Schriftart und die Textfarbe im Label geändert und Tags genutzt, um Text im Textfeld zu formatieren. Beachte die Verwendung von tag_configure für das Textfeld: Es ermöglicht uns, einen "Tag" zu erstellen, den wir auf beliebige Textabschnitte anwenden können. Das ist ein mächtiges Tool, mit dem du das Styling einzelner Textteile im Feld kontrollieren kannst.

3. Integration in eine Anwendung

Jetzt, wo wir wissen, wie man Labels und Textfelder erstellt und stylt, schauen wir uns ein praktisches Beispiel ihrer Verwendung in einer Anwendung an. Stell dir vor, wir erstellen einen einfachen Texteditor, der Textdateien anzeigen und bearbeiten kann.

Python

import tkinter as tk
from tkinter import filedialog

# Funktion zum Öffnen einer Datei
def open_file():
    file_path = filedialog.askopenfilename()
    if file_path:
        with open(file_path, 'r') as file:
            content = file.read()
            text.delete(1.0, tk.END)
            text.insert(tk.END, content)

# Hauptfenster erstellen
root = tk.Tk()
root.title("Texteditor")

# Widgets erstellen
label = tk.Label(root, text="Texteditor", font=("Arial", 16))
label.pack()

text = tk.Text(root, wrap='word', font=("Arial", 12))
text.pack(expand=1, fill='both')

open_button = tk.Button(root, text="Datei öffnen", command=open_file)
open_button.pack()

# Haupt-Ereignisschleife starten
root.mainloop()
  

In diesem Beispiel haben wir eine einfache Anwendung erstellt, mit der der Nutzer Textdateien öffnen und deren Inhalte im Textfeld anzeigen kann. Mithilfe des Widgets Button haben wir den Befehl zum Öffnen einer Datei an die Funktion open_file gebunden, die das Dialogfeld filedialog zur Auswahl einer Datei verwendet. Das ist doch wesentlich interessanter, als nur auf einen Text "Hello World" zu schauen, oder?

4. Verarbeitung von Textänderungen

Wenn du mit Texten arbeitest, möchtest du vielleicht auf Änderungen reagieren: sei es, den Text zurück in die Konsole (oder Datei) auszugeben, oder andere Teile der Benutzeroberfläche zu aktualisieren. Tkinter bietet verschiedene Möglichkeiten, Textänderungen zu überwachen.

Wenn du allerdings etwas Spezifischeres machen möchtest, wie z.B. Text zu suchen oder unter bestimmten Bedingungen zu ersetzen, musst du entsprechende Funktionen selbst schreiben. Für den Anfang kannst du die Methoden get() und delete() nutzen, um Text aus einem Widget abzurufen oder zu ändern.

Jetzt hast du alle Werkzeuge, um eine Mini-Anwendung zu erstellen, die nicht nur Informationen anzeigt, sondern es dem Nutzer ermöglicht, mit ihnen zu interagieren. Ich hoffe, die Lektion über Labels und Textfelder war nicht nur nützlich, sondern auch spannend. Beim nächsten Mal, wenn du ein Textfeld in einer Anwendung siehst, wirst du wissen, dass es wahrscheinlich mit Tkinter erstellt wurde, und dass ein Label nicht nur eine Aufschrift ist, sondern eine ganze Philosophie der Nutzerinteraktion.

Kommentare
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION