Benutzer-Werkzeuge

Webseiten-Werkzeuge


python:tk

Dies ist eine alte Version des Dokuments!


  • TK = Oberflächen-Bibliothek von TCL (Scriptsprache)
  • hat Bindings zu verschiedenen anderen Sprachen
    • TKinter ist die für Python
      • technisch setzen alle Aufrufe TCL-Befehle ab die dann die GUI „malen“
  • schnell zu erlennen
  • weniger Aufwand als die großen Frameworks (GTK, QT usw.)
  • war zeitweise als HTML-Rendering-Engine gedacht (angeblich)

Begriffe/Konzept

Widgets

  • alle Elemente die man sehen kann
    • also Eingabefelder, Panels, Labels usw.
  • manchmal auch Controls genannt
  • jedes Widget wird durch ein eigenes Objekt dargestellt
  • alle Widgets haben ein Eltern-Element innerhalb dessen sie ggf. platziert sind
    • das ist der erste Parameter beim instanzieren
    • das oberste Element ist root
    • root entsteht beim instanzieren von TK
    • das trifft auch auf Fenster (sogenannte Toplevel) zu
      • es gibt nur ein root, ein root kann aber mehere Toplevel haben (mehere Fenster)

Konfiguration/Konfigurationsoptionen

  • die Eigenschaften von Widgets werden „indirekt“ gesetzt (nicht über Objekt-Attribute)
  • entweder beim instanzieren als Parameter
  • oder über Indexes

button = ttk.Button()
button["text"] = "SomeText"

oder über die configure-Methode:

button = ttk.Button()
button.configure(text = "SomeText")

  • Attribute sind also nicht direkt als solche zugänglich
  • man kann sich alle Eigenschaften auflisten lassen:

button.configure()

{'command': ('command', 'command', 'Command', '', ''),
 'default': ('default',
  'default',
  'Default',
  <index object: 'normal'>,
  <index object: 'normal'>),
 'takefocus': ('takefocus',
  'takeFocus',
  'TakeFocus',
  'ttk::takefocus',
  'ttk::takefocus'),
 'text': ('text', 'text', 'Text', '', 'Bla'),
Ausgabe ist abgeschnitten…

  • 1. Parameter ist der Parametername
  • 2. Parameter Object-Name in der Options-Datenbank (in der Regel unrelevant)
  • 3. Parameter Objekt-Klasse in der Options-Datenbank (in der Regel unrelevant)
  • 4. Parameter Default-Wert → bei „text“ „“ → leer
  • 5. der aktuelle Wert → bei „text“ 'Bla'

Informationen über Widget-Objekte

  • winfo liefert für ein Widget-Objekte Informationen
  • window ist eine veraltete Bezeichnung für Widget innerhalb Tk
Methode Beschreibung
winfo_classKlasse des Widget-Objektes
winfo_childrenListe von Kind-Objekten (also direkten Kindern).
Zum Beispiel um alle Objekte innerhalb eines Fensters (root oder TopLevel) oder Frames zu enthalten
winfo_parentDas Eltern-Widget des Widgets
winfo_toplevelToplevel-Fenster zu dem das Widget gehört
windfo_widthDerzeitige Breite des Elements (wenn es auf dem Bildschirm angezeigt wird)
windfo_heightDerzeitige Höhe des Elements (wenn es auf dem Bildschirm angezeigt wird)
winfo_reqwidthDie Breite die das Widget vom Geometrie-Manager angefordert hat
winfo_reqheightDie Höhe die das Widget vom Geometrie-Manager angefordert hat
winfo_xX-Position des Widgets innerhalb des Eltern-Widgets
winfo_yY-Position des Widgets innerhalb des Eltern-Widgets
winfo_rootxX-Position betrachtet auf den gesamten Bildschirm
winfo_rootyY-Position betrachtet auf den gesamten Bildschirm
winfo_vieweableOb das Widget derzeit angezeigt wird oder versteckt ist
python/tk.1678723491.txt.gz · Zuletzt geändert: 2023/03/13 17:04 von root