navigation Navigation


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 Fenster

    Gemeinsame 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=20 bei Label ist nicht gleich width=20 bei Canvas

    Farben

    • bg/background: Hintergrundfarbe des Widgets
    • fg/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 borderwidth ist kaum sichbar

    Zustand

    • state: Kann sein: normal, disabled und manchmal readonly
    OptionBeschreibungBeispiel
    widthBreite des Widgetswidth=20
    heightHöhe des Widgetsheight=5
    bg oder backgroundHintergrundfarbebg="white"
    fg oder foregroundVordergrundfarbe (Text)fg="black"
    fontSchriftartfont=("Arial", 12)
    cursorMauszeigercursor="hand2"
    reliefRahmentyprelief="raised"
    borderwidth oder bdRahmenbreitebd=2
    padxHorizontaler Innenabstandpadx=10
    padyVertikaler Innenabstandpady=5
    stateZustand (normal/disabled)state="disabled"