443
15.4
Optionen der Widgets
Abb. 15.8: Label-Widgets mit unterschiedlichen Schriftfarben und Hintergrundfarben
15.4.5 Rahmen
Widgets besitzen einen Rahmen, dessen Aussehen durch folgende Attribute definiert wird:
Das Attribut bd (oder borderwidth) gibt die Breite des Rahmens an.
Das Attribut relief beschreibt die Form. Es kann folgende Werte annehmen:
SUNKEN, RAISED, GROOVE, RIDGE, FLAT.
Das folgende Beispiel zeigt das Erscheinungsbild verschiedener Rahmentypen:
Abb. 15.9: Label-Widgets mit verschiedenen Rahmen
15.4.6 Die Größe eines Widgets
Widgets, die Text enthalten, wie Buttons oder Labels, sind so voreingestellt, dass sie sich in
ihrer Größe dem Text anpassen. Sie sind so hoch und so weit, dass sie gerade eben den Text
umfassen (siehe Abbildung 15.10 links oben).
# rahmentest.pyw
from tkinter import *
fenster = Tk()
rahmentypen = [SUNKEN, RAISED, GROOVE, RIDGE, FLAT]
for rahmen in rahmentypen:
label = Label(fenster, text=str(rahmen),
font=('Arial',10),
bd=4, relief=rahmen, padx=10)
label.pack()
fenster.mainloop()
Kapitel 15
Grafische Benutzungsoberflächen mit tkinter
444
Die Größe eines Widgets kann mittels der Optionen width (Weite) und height (Höhe) kon-
figuriert werden. Zu beachten ist ein Unterschied zwischen Widgets, die einen Text enthal-
ten (z.B. Label oder Button), und Widgets, die nicht textbezogen sind (z.B. Frames).
Bei Labels und anderen textbezogenen Widgets werden die Höhe (height) als Anzahl
der Textzeilen und die Weite (
width) als Anzahl der Zeichen definiert.
Bei nicht textbezogenen Widgets (z.B. Frames) können Höhe und Weite auf folgende
Weise angegeben werden:
Wenn der Wert der Option eine ganze Zahl ist, sind Pixel gemeint. width=100 bedeu-
tet eine Weite von
100 Pixel.
Mit einem String, der aus einer Zahl und dem Buchstaben c besteht, wird eine Länge
in Zentimetern definiert.
width='10c' bedeutet eine Weite von 10 cm.
Die beiden Label-Widgets des folgenden Beispiels haben zwar die gleichen Werte für Höhe
und Weite, besitzen aber unterschiedliche Schriftgrößen und haben deshalb auch unter-
schiedliche Ausmaße (siehe Abbildung 15.10 rechts).
Bei Labels und Buttons will man häufig unabhängig vom enthaltenen Text eine einheitliche
Breite der Objekte erzielen. Man erreicht dies, indem man für die Optionen
font und width
die gleichen Werte wählt (siehe Abbildung 15.10 links unten).
from tkinter import *
fenster = Tk()
label1 = Label(fenster, text='groß',font=('Arial',40),
relief='groove', bg='yellow',
width=6, height=3)
label2 = Label(fenster, text='klein',font=('Arial',10),
relief='groove', bg='yellow',
width=6, height=3)
label1.pack()
label2.pack()
fenster.mainloop()
label1 = Label(fenster, text='groß',font=('Arial',40),
relief='groove', bg='yellow',
width=6, height=3)
label2 =Label(fenster, text='klein',font=('Arial',10),
relief='groove', bg='yellow',
width=6, height=3)
label1 = Label(fenster, text='kurz',
font=('Arial',10), width=(12,'c'),
relief='groove', bg='yellow')
label2 = Label(fenster, text='langer Text',
font=('Arial',10), width=12,
relief='groove', bg='yellow')

Get Python 3 - Lernen und professionell anwenden now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.