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

Anzeige von Text und Daten

Zielsetzung

Mit Hilfe von Schriftfeldern (Label) sollen kurze Informationstexte und Daten auf der Benutzeroberfläche dargestellt werden.

Anwendungsfenster

Schriftfelder als GUI-Objekte

Die folgenden Testprogramme zeigen, wie man Schriftfelder erzeugt und zur Anzeige von Texten und Daten nutzt.

from tkinter import *
# Erzeugung des Fensters
tkFenster = Tk()
tkFenster.title("Test")
tkFenster.geometry('120x110')
# Label mit Überschrift für das Konto
labelUeberschriftKonto = Label(master=tkFenster,
                               text="Konto",
                               background="#FFCFC9")
labelUeberschriftKonto.place(x=10, y=10, width=100, height=20)
# Label für den Kontostand
labelKonto = Label(master=tkFenster,
                   text="100",
                   background="#FFCFC9")
labelKonto.place(x=45, y=40, width=30, height=30)
# Aktivierung des Fensters
tkFenster.mainloop()

Hier eine Alternative, die die gleiche GUI erzeugt:

from tkinter import *
# Erzeugung des Fensters
tkFenster = Tk()
tkFenster.title("Test")
tkFenster.geometry('120x110')
# Label mit Überschrift für das Konto
labelUeberschriftKonto = Label(master=tkFenster)
labelUeberschriftKonto.config(text="Konto")
labelUeberschriftKonto.config(background="#FFCFC9")
labelUeberschriftKonto.place(x=10, y=10, width=100, height=20)
# Label für den Kontostand
labelKonto = Label(master=tkFenster)
labelKonto.config(text="100")
labelKonto.config(background="#FFCFC9")
labelKonto.place(x=45, y=40, width=30, height=30)
# Aktivierung des Fensters
tkFenster.mainloop()

Die beiden Schriftfelder dienen dazu, den aktuellen Stand eines Kontos anzuzeigen.

Test

Schriftfelder werden als Objekte der Klasse Label implementiert.

Im Programm oben werden zwei Label-Objekte erzeugt: Die Anweisungen labelUeberschriftKonto = Label(...) und labelKonto = Label(...) erzeugen jeweils ein Objekt der Klasse Label und binden sie an passende Bezeichner. Diese Objekte verwalten die Schriftfelder im Anwendungsfenster.

Beachte die verschiedenen Möglichkeiten, wie man Attributwerte setzen kann. Zum einen ist dies direkt bei der Erzeugung der Objekte möglich, indem man geeignete Werte mit Hilfe von Parametern übergibt. Zum anderen lässt sich dies nachträglich mit der Operation config(...) durchführen. So führt beispielsweise die Anweisung labelKonto.config(text="100") dazu, dass das Label-Objekt labelKonto die Operation config mit dem angegebenen Parameterwert ausführt. Dies bewirkt, dass das Attribut für die Aufschrift des Schriftfeldes den angegebenen Wert erhält.

Will man auf Attributwerte eines Label-Objekts zugreifen, so lässt sich dies mit der Operation cget(...) durchführen. Beispielsweise liefert die Anweisung labelKonto.cget("text") den aktuellen Wert des Attributs text des Label-Objekts labelKonto.

Aufgabe 1

Wie ändert sich die Benutzeroberfläche zum Testprogramm oben, wenn man das Schriftfeld zur Kontoüberschrift wie folgt erzeugt?

...
labelUeberschriftKonto = Label(master=tkFenster)
labelUeberschriftKonto.config(text="Kontostand")
labelUeberschriftKonto.config(foreground="white")
labelUeberschriftKonto.config(font="Arial 16")
labelUeberschriftKonto.config(background="#889E9D")
...

Aufgabe 2

Was bewirkt wohl die Anweisung labelKonto.place(x=45, y=40, width=30, height=30)? Versuche, es durch Testen und gezieltes Abändern von Parameterwerten herauszufinden.

Aufgabe 3

Erstelle ein Programm zur Erzeugung der folgenden Benutzeroberfläche:

Anwendungsfenster

Hinweis: Die hier dargestellte Farbe gelb hat den Hexcode #FBD975.

X

Fehler melden

X

Suche