Tkinter - Widgets
Tkinter ist das klassische GUI-Toolkit von Python und bildet für viele Entwickler den ersten Schritt zu eigenen Desktop-Anwendungen. In meinem Blogartikel zeige ich dir, welche Widgets dir zur Verfügung stehen, wie du sie sinnvoll kombinierst und was du bei Layout, Interaktion und Styling beachten solltest. So lernst du, mit wenigen Zeilen Code dialogorientierte Tools zu bauen – von simplen Formularen bis zu kleinen Dashboards.
Inhaltsverzeichnis
Einführung
In Tkinter ist ein Widget ein einzelnes grafisches Element, das man in einem Fenster erzeugt und steuert. Jedes sichtbare Teil einer Benutzeroberfläche ist ein Widgets - vom einfachen Textfeld bis hin zu komplexeren Containern.
Wichtiges im Kürze
- Widget = GUI-Element Beispiele: Label, Button, Entry, Frame, Checkbutton, Canvas, Listbox, etc.
- Widgets haben Eigenschaften Etwa Text, Farben, Schriftarten, Größe, Padding, Ausrichtung
- Widgets reagieren auf Events Z.B. Mausklicks, Tastatureingaben oder Fokuswechsel
- Widgets werden in einem Eletern-Element platzert Fast jedes Widget hat ein übergeordnetes Element.
Überblick über Tkinter Widgets
Widget-Hierarchie
Widget (Basisklasse)
│
├── Label - Text/Bilder anzeigen
├── Button - Klickbare Schaltflächen
├── Entry - Einzeilige Texteingabe
├── Text - Mehrzeilige Texteingabe
├── Checkbutton - Checkboxen (an/aus)
├── Radiobutton - Optionsfelder (einer von mehreren)
├── Listbox - Auswahlliste
├── Canvas - Zeichenfläche
├── Frame - Container für andere Widgets
├── Message - Mehrzeiliger Text (formatiert)
├── Scale - Schieberegler
├── Scrollbar - Scrollbalken
├── Menu - Menüs
├── Menubutton - Menü-Schaltfläche
├── Spinbox - Zahlen-Eingabe mit Pfeilen
└── Toplevel - Eigenständiges FensterGemeinsame Widget-Optionen
Alle Widgets teilen bestimmte grundlegende Optionen.
Was bedeutet “gemeinsame Widget-Optionen”?
Alle Tkinter-Widgets (Label, Button, Entry, etc.) erben von einer Basis-Klasse und teilen daher viele Parameter. Das bedeutet: Was wir über Label lernen, funktioniert auch bei Button.
Wichtigste gemeinsame Optionen erklärt.
Größe
width,height: Bei Text-Widgets in Zeichen/Zeilen, bei Canvas/Frame in Pixeln- Wichtig:
width=20bei Label ist nicht gleichwidth=20bei Canvas
Farben
bg/background: Hintergrundfarbe des Widgetsfg/foreground: Vordergrundfarbe (meist) Text- Farben als Name (
red) oder Hex (#ffffff)
Schrift
font: Format (Familie,Größe,Stil)- Beispiel:
font=("Arial", 12 "bold") - Stil kann sein:
"bold","italic","bold italic"
Abstände
padx/pady: Innerer Abständ (Widget-Rand zu Inhalt)pack(padx=10): Äußerer Abstand (Widget zu Nachbarn)
Rahmen
relief: 3D-Effekt (wird weiter unten erklärt)borderwidth/bd: Dicke des Rahmens in Pixeln- Relief ohne
borderwidthist kaum sichbar
Zustand
state: Kann sein:normal,disabledund manchmalreadonly
| Option | Beschreibung | Beispiel |
|---|---|---|
width | Breite des Widgets | width=20 |
height | Höhe des Widgets | height=5 |
bg oder background | Hintergrundfarbe | bg="white" |
fg oder foreground | Vordergrundfarbe (Text) | fg="black" |
font | Schriftart | font=("Arial", 12) |
cursor | Mauszeiger | cursor="hand2" |
relief | Rahmentyp | relief="raised" |
borderwidth oder bd | Rahmenbreite | bd=2 |
padx | Horizontaler Innenabstand | padx=10 |
pady | Vertikaler Innenabstand | pady=5 |
state | Zustand (normal/disabled) | state="disabled" |