tkinter.ttk — Tk thematisierte Widgets¶
Quellcode: Lib/tkinter/ttk.py
Das Modul tkinter.ttk bietet Zugriff auf die thematisierte Widget-Sammlung von Tk, die in Tk 8.5 eingeführt wurde. Es bietet zusätzliche Vorteile, darunter die kantenglättende Font-Darstellung unter X11 und Fenstertransparenz (erfordert einen Kompositionsfenstermanager unter X11).
Die Grundidee von tkinter.ttk ist es, den Code, der das Verhalten eines Widgets implementiert, so weit wie möglich vom Code zu trennen, der sein Aussehen implementiert.
Siehe auch
- Unterstützung für Tk-Widget-Styling
Ein Dokument, das die Theming-Unterstützung für Tk einführt
Verwendung von Ttk¶
Um Ttk zu verwenden, importieren Sie sein Modul
from tkinter import ttk
Um die grundlegenden Tk-Widgets zu überschreiben, sollte der Import dem Tk-Import folgen
from tkinter import *
from tkinter.ttk import *
Dieser Code bewirkt, dass mehrere tkinter.ttk-Widgets (Button, Checkbutton, Entry, Frame, Label, LabelFrame, Menubutton, PanedWindow, Radiobutton, Scale und Scrollbar) die Tk-Widgets automatisch ersetzen.
Dies hat den direkten Vorteil, die neuen Widgets zu verwenden, die ein besseres Aussehen und Gefühl auf verschiedenen Plattformen bieten. Die ersetzenden Widgets sind jedoch nicht vollständig kompatibel. Der Hauptunterschied besteht darin, dass Widget-Optionen wie „fg“, „bg“ und andere, die sich auf das Widget-Styling beziehen, in Ttk-Widgets nicht mehr vorhanden sind. Verwenden Sie stattdessen die Klasse ttk.Style für verbesserte Styling-Effekte.
Siehe auch
- Konvertierung bestehender Anwendungen zur Verwendung von Tile-Widgets
Eine Monographie (in Tcl-Terminologie) über Unterschiede, die typischerweise auftreten, wenn Anwendungen auf die Verwendung der neuen Widgets umgestellt werden.
Ttk Widgets¶
Ttk bietet 18 Widgets, von denen zwölf bereits in tkinter existierten: Button, Checkbutton, Entry, Frame, Label, LabelFrame, Menubutton, PanedWindow, Radiobutton, Scale, Scrollbar und Spinbox. Die anderen sechs sind neu: Combobox, Notebook, Progressbar, Separator, Sizegrip und Treeview. Und alle sind Unterklassen von Widget.
Die Verwendung der Ttk-Widgets verleiht der Anwendung ein verbessertes Aussehen und Gefühl. Wie oben erwähnt, gibt es Unterschiede in der Art und Weise, wie das Styling kodiert wird.
Tk-Code
l1 = tkinter.Label(text="Test", fg="black", bg="white")
l2 = tkinter.Label(text="Test", fg="black", bg="white")
Ttk-Code
style = ttk.Style()
style.configure("BW.TLabel", foreground="black", background="white")
l1 = ttk.Label(text="Test", style="BW.TLabel")
l2 = ttk.Label(text="Test", style="BW.TLabel")
Weitere Informationen zu TtkStyling finden Sie in der Dokumentation der Klasse Style.
Widget¶
ttk.Widget definiert Standardoptionen und -methoden, die von Tk thematisierten Widgets unterstützt werden, und ist nicht zur direkten Instanziierung vorgesehen.
Standardoptionen¶
Alle ttk-Widgets akzeptieren die folgenden Optionen
Option |
Beschreibung |
|---|---|
Klasse |
Gibt die Fensterklasse an. Die Klasse wird verwendet, wenn die Optionsdatenbank für die anderen Optionen des Fensters abgefragt wird, um die Standard-Bindtags für das Fenster zu bestimmen und das Standardlayout und den Standardstil des Widgets auszuwählen. Diese Option ist schreibgeschützt und kann nur beim Erstellen des Fensters angegeben werden. |
cursor |
Gibt den Mauszeiger an, der für das Widget verwendet werden soll. Wenn er auf eine leere Zeichenkette (Standard) gesetzt ist, wird der Cursor vom übergeordneten Widget übernommen. |
takefocus |
Bestimmt, ob das Fenster den Fokus während der Tastaturnavigation akzeptiert. 0, 1 oder eine leere Zeichenkette wird zurückgegeben. Wenn 0 zurückgegeben wird, bedeutet dies, dass das Fenster bei der Tastaturnavigation vollständig übersprungen werden sollte. Wenn 1, bedeutet dies, dass das Fenster den Eingabefokus erhalten sollte, solange es sichtbar ist. Eine leere Zeichenkette bedeutet, dass die Navigationsskripte entscheiden, ob das Fenster fokussiert wird oder nicht. |
style |
Kann verwendet werden, um einen benutzerdefinierten Widget-Stil anzugeben. |
Scrollbare Widget-Optionen¶
Die folgenden Optionen werden von Widgets unterstützt, die von einer Scrollbar gesteuert werden.
Option |
Beschreibung |
|---|---|
xscrollcommand |
Wird zur Kommunikation mit horizontalen Scrollbars verwendet. Wenn sich die Ansicht im Fenster des Widgets ändert, generiert das Widget einen Tcl-Befehl basierend auf dem Scrollcommand. Normalerweise besteht diese Option aus der Methode |
yscrollcommand |
Wird zur Kommunikation mit vertikalen Scrollbars verwendet. Weitere Informationen siehe oben. |
Label-Optionen¶
Die folgenden Optionen werden von Labels, Buttons und anderen button-ähnlichen Widgets unterstützt.
Option |
Beschreibung |
|---|---|
text |
Gibt eine Textzeichenkette an, die im Widget angezeigt werden soll. |
textvariable |
Gibt einen Namen an, dessen Wert anstelle der Textoption-Ressource verwendet wird. |
underline |
Wenn gesetzt, gibt den Index (0-basiert) eines Zeichens an, das in der Textzeichenkette unterstrichen werden soll. Das unterstrichene Zeichen wird für die mnemonische Aktivierung verwendet. |
image |
Gibt ein anzuzeigendes Bild an. Dies ist eine Liste mit einem oder mehreren Elementen. Das erste Element ist der Name des Standardbildes. Der Rest der Liste besteht aus Zustandsangabe/Wert-Paaren, wie sie von |
Verbund |
Gibt an, wie das Bild relativ zum Text angezeigt werden soll, falls sowohl Text- als auch Bildoptionen vorhanden sind. Gültige Werte sind
|
width |
Wenn größer als Null, gibt an, wie viel Platz (in Zeichenbreiten) für das Textlabel reserviert werden soll; wenn kleiner als Null, gibt eine Mindestbreite an. Wenn Null oder nicht angegeben, wird die natürliche Breite des Textlabels verwendet. |
Kompatibilitätsoptionen¶
Option |
Beschreibung |
|---|---|
state |
Kann auf „normal“ oder „disabled“ gesetzt werden, um das „disabled“-Zustands-Bit zu steuern. Dies ist eine schreibgeschützte Option: Das Setzen ändert den Widget-Zustand, aber die Methode |
Widget-Zustände¶
Der Widget-Zustand ist eine Bitmap von unabhängigen Zustands-Flags.
Flag |
Beschreibung |
|---|---|
active |
Der Mauszeiger befindet sich über dem Widget und das Drücken einer Maustaste löst eine Aktion aus |
disabled |
Widget ist per Programm gesteuert deaktiviert |
focus |
Widget hat den Tastaturfokus |
pressed |
Widget wird gerade gedrückt |
selected |
„On“, „true“ oder „current“ für Elemente wie Checkbuttons und Radiobuttons |
background |
Windows und Mac haben eine Vorstellung von einem „aktiven“ oder Vordergrundfenster. Der Zustand background ist für Widgets in einem Hintergrundfenster gesetzt und für die im Vordergrundfenster gelöscht |
readonly |
Widget darf vom Benutzer nicht geändert werden |
alternate |
Ein vom Widget spezifisches alternatives Anzeigeformat |
invalid |
Der Wert des Widgets ist ungültig |
Eine Zustandspezifikation ist eine Abfolge von Zustandsnamen, optional vorangestellt von einem Ausrufezeichen, das anzeigt, dass das Bit ausgeschaltet ist.
ttk.Widget¶
Zusätzlich zu den unten beschriebenen Methoden unterstützt ttk.Widget die Methoden tkinter.Widget.cget() und tkinter.Widget.configure().
- class tkinter.ttk.Widget¶
- identify(x, y)¶
Gibt den Namen des Elements an der Position x y zurück oder eine leere Zeichenkette, wenn der Punkt innerhalb keines Elements liegt.
x und y sind Pixelkoordinaten relativ zum Widget.
- instate(statespec, callback=None, *args, **kw)¶
Testet den Zustand des Widgets. Wenn kein Callback angegeben ist, gibt es
Truezurück, wenn der Widget-Zustand mit statespec übereinstimmt, und andernfallsFalse. Wenn ein Callback angegeben ist, wird er mit args aufgerufen, wenn der Widget-Zustand mit statespec übereinstimmt.
- state(statespec=None)¶
Ändert oder erfragt den Widget-Zustand. Wenn statespec angegeben ist, wird der Widget-Zustand entsprechend gesetzt und eine neue statespec zurückgegeben, die angibt, welche Flags geändert wurden. Wenn statespec nicht angegeben ist, werden die aktuell aktivierten Zustands-Flags zurückgegeben.
statespec ist normalerweise eine Liste oder ein Tupel.
Combobox¶
Das Widget ttk.Combobox kombiniert ein Textfeld mit einer Dropdown-Liste von Werten. Dieses Widget ist eine Unterklasse von Entry.
Zusätzlich zu den von Widget geerbten Methoden: Widget.cget(), Widget.configure(), Widget.identify(), Widget.instate() und Widget.state(), und den von Entry geerbten Methoden: Entry.bbox(), Entry.delete(), Entry.icursor(), Entry.index(), Entry.insert(), Entry.selection(), Entry.xview(), hat es weitere Methoden, die unter ttk.Combobox beschrieben sind.
Optionen¶
Dieses Widget akzeptiert die folgenden spezifischen Optionen
Option |
Beschreibung |
|---|---|
exportselection |
Boolean-Wert. Wenn gesetzt, wird die Widget-Auswahl mit der Fensterverwaltungsauswahl verknüpft (die beispielsweise durch Aufrufen von Misc.selection_get abgerufen werden kann). |
justify |
Gibt an, wie der Text im Widget ausgerichtet wird. Einer von „left“, „center“ oder „right“. |
height |
Gibt die Höhe der Dropdown-Liste in Zeilen an. |
postcommand |
Ein Skript (möglicherweise mit Misc.register registriert), das unmittelbar vor der Anzeige der Werte aufgerufen wird. Es kann festlegen, welche Werte angezeigt werden sollen. |
state |
Einer von „normal“, „readonly“ oder „disabled“. Im Zustand „readonly“ kann der Wert nicht direkt bearbeitet werden, und der Benutzer kann nur Werte aus der Dropdown-Liste auswählen. Im Zustand „normal“ ist das Textfeld direkt editierbar. Im Zustand „disabled“ ist keine Interaktion möglich. |
textvariable |
Gibt einen Namen an, dessen Wert mit dem Widget-Wert verknüpft ist. Immer wenn sich der Wert, der diesem Namen zugeordnet ist, ändert, wird der Widget-Wert aktualisiert und umgekehrt. Siehe |
Werte |
Gibt die Liste der Werte an, die in der Dropdown-Liste angezeigt werden sollen. |
width |
Gibt einen ganzzahligen Wert an, der die gewünschte Breite des Eingabefensters in durchschnittlich großen Zeichen der Schriftart des Widgets angibt. |
Virtuelle Ereignisse¶
Die Combobox-Widgets generieren ein virtuelles Ereignis <<ComboboxSelected>>, wenn der Benutzer ein Element aus der Werteliste auswählt.
ttk.Combobox¶
- class tkinter.ttk.Combobox¶
- current(newindex=None)¶
Wenn newindex angegeben ist, wird der Combobox-Wert auf die Elementposition newindex gesetzt. Andernfalls gibt sie den Index des aktuellen Werts zurück oder -1, wenn der aktuelle Wert nicht in der Werteliste enthalten ist.
- get()¶
Gibt den aktuellen Wert der Combobox zurück.
- set(value)¶
Setzt den Wert der Combobox auf value.
Spinbox¶
Das Widget ttk.Spinbox ist ein ttk.Entry, das mit Inkrementierungs- und Dekrementierungs-Pfeilen erweitert wurde. Es kann für Zahlen oder Listen von Zeichenkettenwerten verwendet werden. Dieses Widget ist eine Unterklasse von Entry.
Zusätzlich zu den von Widget geerbten Methoden: Widget.cget(), Widget.configure(), Widget.identify(), Widget.instate() und Widget.state(), und den von Entry geerbten Methoden: Entry.bbox(), Entry.delete(), Entry.icursor(), Entry.index(), Entry.insert(), Entry.xview(), hat es weitere Methoden, die unter ttk.Spinbox beschrieben sind.
Optionen¶
Dieses Widget akzeptiert die folgenden spezifischen Optionen
Option |
Beschreibung |
|---|---|
from |
Gleitkommawert. Wenn gesetzt, ist dies der Mindestwert, auf den die Dekrement-Schaltfläche dekrementieren wird. Muss als |
to |
Gleitkommawert. Wenn gesetzt, ist dies der Maximalwert, auf den die Inkrement-Schaltfläche inkrementieren wird. |
increment |
Gleitkommawert. Gibt den Betrag an, um den die Inkrement-/Dekrement-Schaltflächen den Wert ändern. Standardmäßig 1,0. |
Werte |
Sequenz von Zeichenketten- oder Gleitkommawerten. Wenn angegeben, durchlaufen die Inkrement-/Dekrement-Schaltflächen die Elemente dieser Sequenz, anstatt Zahlen zu inkrementieren oder zu dekrementieren. |
wrap |
Boolean-Wert. Wenn |
format |
Zeichenkettenwert. Dies gibt das Format der Zahlen an, die von den Inkrement-/Dekrement-Schaltflächen gesetzt werden. Es muss im Format „%W.Pf“ vorliegen, wobei W die aufgefüllte Breite des Werts, P die Präzision und „%“ und „f“ Literale sind. |
command |
Python-Aufrufbare. Wird ohne Argumente aufgerufen, wenn eine der Inkrement- oder Dekrement-Schaltflächen gedrückt wird. |
Virtuelle Ereignisse¶
Das Spinbox-Widget generiert ein virtuelles Ereignis <<Increment>>, wenn der Benutzer <Up> drückt, und ein virtuelles Ereignis <<Decrement>>, wenn der Benutzer <Down> drückt.
ttk.Spinbox¶
Notebook¶
Das Ttk Notebook-Widget verwaltet eine Sammlung von Fenstern und zeigt jeweils nur eines an. Jedes Kindfenster ist mit einer Registerkarte verbunden, die der Benutzer auswählen kann, um das aktuell angezeigte Fenster zu ändern.
Optionen¶
Dieses Widget akzeptiert die folgenden spezifischen Optionen
Option |
Beschreibung |
|---|---|
height |
Wenn vorhanden und größer als Null, gibt die gewünschte Höhe des Fensterbereichs an (ohne interne Polsterung oder Registerkarten). Andernfalls wird die maximale Höhe aller Fenster verwendet. |
padding |
Gibt den zusätzlichen Platz an, der um das Notebook herum hinzugefügt werden soll. Die Polsterung ist eine Liste mit bis zu vier Längenangaben: links oben rechts unten. Wenn weniger als vier Elemente angegeben sind, wird unten von oben übernommen, rechts von links und oben von links. |
width |
Wenn vorhanden und größer als Null, gibt die gewünschte Breite des Fensterbereichs an (ohne interne Polsterung). Andernfalls wird die maximale Breite aller Fenster verwendet. |
Tab-Optionen¶
Es gibt auch spezifische Optionen für Registerkarten
Option |
Beschreibung |
|---|---|
state |
Entweder „normal“, „disabled“ oder „hidden“. Wenn „disabled“, dann ist die Registerkarte nicht auswählbar. Wenn „hidden“, dann wird die Registerkarte nicht angezeigt. |
sticky |
Gibt an, wie das Kindfenster im Fensterbereich positioniert wird. Der Wert ist eine Zeichenkette, die null oder mehr der Zeichen „n“, „s“, „e“ oder „w“ enthält. Jeder Buchstabe bezieht sich auf eine Seite (Nord, Süd, Ost oder West), an der das Kindfenster haftet, wie beim |
padding |
Gibt den zusätzlichen Platz an, der zwischen dem Notebook und dieser Registerkarte hinzugefügt werden soll. Die Syntax ist die gleiche wie für die Option padding, die von diesem Widget verwendet wird. |
text |
Gibt einen Text an, der auf der Registerkarte angezeigt werden soll. |
image |
Gibt ein Bild an, das auf der Registerkarte angezeigt werden soll. Siehe die Option image, die in |
Verbund |
Gibt an, wie das Bild relativ zum Text angezeigt werden soll, falls sowohl die Optionen text als auch image vorhanden sind. Siehe Label Options für gültige Werte. |
underline |
Gibt den Index (0-basiert) eines Zeichens an, das in der Textzeichenkette unterstrichen werden soll. Das unterstrichene Zeichen wird für die mnemonische Aktivierung verwendet, wenn |
Tab-Identifikatoren¶
Die tab_id, die in mehreren Methoden von ttk.Notebook vorkommt, kann eine der folgenden Formen annehmen
Eine Ganzzahl zwischen Null und der Anzahl der Registerkarten
Der Name eines Kindfensters
Eine Positionsangabe in der Form „@x,y“, die die Registerkarte identifiziert
Die literale Zeichenkette „current“, die die aktuell ausgewählte Registerkarte identifiziert
Die literale Zeichenkette „end“, die die Gesamtzahl der Registerkarten zurückgibt (nur gültig für
Notebook.index())
Virtuelle Ereignisse¶
Dieses Widget generiert nach der Auswahl einer neuen Registerkarte ein virtuelles Ereignis <<NotebookTabChanged>>.
ttk.Notebook¶
- class tkinter.ttk.Notebook¶
- add(child, **kw)¶
Fügt dem Notebook eine neue Registerkarte hinzu.
Wenn das Fenster derzeit vom Notebook verwaltet, aber versteckt ist, wird es an seine vorherige Position wiederhergestellt.
Siehe Tab-Optionen für die Liste der verfügbaren Optionen.
- forget(tab_id)¶
Entfernt die durch tab_id angegebene Registerkarte und unmapped und unmanagt das zugehörige Fenster.
- hide(tab_id)¶
Versteckt die durch tab_id angegebene Registerkarte.
Die Registerkarte wird nicht angezeigt, aber das zugehörige Fenster bleibt vom Notebook verwaltet und seine Konfiguration wird beibehalten. Versteckte Registerkarten können mit dem Befehl
add()wiederhergestellt werden.
- identify(x, y)¶
Gibt den Namen des Registerkarten-Elements an der Position x, y zurück oder eine leere Zeichenkette, wenn keines vorhanden ist.
- index(tab_id)¶
Gibt den numerischen Index der durch tab_id angegebenen Registerkarte zurück oder die Gesamtzahl der Registerkarten, wenn tab_id die Zeichenkette „end“ ist.
- insert(pos, child, **kw)¶
Fügt einen Reiter an der angegebenen Position ein.
pos ist entweder der String „end“, ein Integer-Index oder der Name eines verwalteten Kindelements. Wenn child bereits vom Notebook verwaltet wird, wird es an die angegebene Position verschoben.
Siehe Tab-Optionen für die Liste der verfügbaren Optionen.
- select(tab_id=None)¶
Wählt den angegebenen tab_id aus.
Das zugehörige Kindfenster wird angezeigt, und das zuvor ausgewählte Fenster (falls abweichend) wird ausgeblendet. Wenn tab_id weggelassen wird, wird der Widget-Name des aktuell ausgewählten Reiters zurückgegeben.
- tab(tab_id, option=None, **kw)¶
Fragt die Optionen des spezifischen tab_id ab oder modifiziert sie.
Wenn kw nicht angegeben ist, wird ein Dictionary der Tab-Optionswerte zurückgegeben. Wenn option angegeben ist, wird der Wert dieser option zurückgegeben. Andernfalls werden die Optionen auf die entsprechenden Werte gesetzt.
- tabs()¶
Gibt eine Liste der vom Notebook verwalteten Fenster zurück.
- enable_traversal()¶
Aktiviert die Tastatur-Navigation für ein Top-Level-Fenster, das dieses Notebook enthält.
Dadurch werden die Bindungen für das Top-Level-Fenster, das das Notebook enthält, wie folgt erweitert:
Steuerung-Tab: wählt den Reiter nach dem aktuell ausgewählten aus.
Umschalt-Steuerung-Tab: wählt den Reiter vor dem aktuell ausgewählten aus.
Alt-K: wobei K der mnemonic (unterstrichene) Buchstabe eines beliebigen Reiters ist, wählt diesen Reiter aus.
Mehrere Notebooks in einem einzigen Top-Level-Fenster können für die Navigation aktiviert werden, einschließlich verschachtelter Notebooks. Die Notebook-Navigation funktioniert jedoch nur korrekt, wenn alle Reiter das Notebook, in dem sie sich befinden, als Master haben.
Progressbar¶
Das Widget ttk.Progressbar zeigt den Status eines lang andauernden Vorgangs an. Es kann in zwei Modi arbeiten: 1) im deterministischen Modus, der den abgeschlossenen Anteil im Verhältnis zur Gesamtarbeit anzeigt, und 2) im indeterministischen Modus, der eine animierte Anzeige bereitstellt, um den Benutzer darüber zu informieren, dass die Arbeit fortschreitet.
Optionen¶
Dieses Widget akzeptiert die folgenden spezifischen Optionen
Option |
Beschreibung |
|---|---|
orient |
Einer von „horizontal“ oder „vertikal“. Gibt die Ausrichtung der Fortschrittsanzeige an. |
length |
Gibt die Länge der langen Achse der Fortschrittsanzeige an (Breite bei horizontal, Höhe bei vertikal). |
mode |
Einer von „determinate“ oder „indeterminate“. |
maximum |
Eine Zahl, die den Maximalwert angibt. Standardwert ist 100. |
value |
Der aktuelle Wert der Fortschrittsanzeige. Im „determinate“-Modus stellt dies den abgeschlossenen Arbeitsumfang dar. Im „indeterminate“-Modus wird er modulo maximum interpretiert; das heißt, die Fortschrittsanzeige schließt einen „Zyklus“ ab, wenn ihr Wert um maximum erhöht wird. |
variable |
Ein Name, der mit dem Optionswert verknüpft ist. Wenn angegeben, wird der Wert der Fortschrittsanzeige automatisch auf den Wert dieses Namens gesetzt, wenn letzterer modifiziert wird. |
phase |
Nur-Lese-Option. Das Widget inkrementiert periodisch den Wert dieser Option, solange ihr Wert größer als 0 und im deterministischen Modus kleiner als maximum ist. Diese Option kann vom aktuellen Thema verwendet werden, um zusätzliche Animationseffekte bereitzustellen. |
ttk.Progressbar¶
- class tkinter.ttk.Progressbar¶
- start(interval=None)¶
Beginnt den automatischen Inkrementierungsmodus: plant ein wiederkehrendes Timer-Ereignis, das
Progressbar.step()alle interval Millisekunden aufruft. Wenn weggelassen, beträgt das Standardintervall 50 Millisekunden.
- step(amount=None)¶
Inkrementiert den Wert der Fortschrittsanzeige um amount.
amount ist standardmäßig 1.0, wenn weggelassen.
- stop()¶
Beendet den automatischen Inkrementierungsmodus: bricht jedes wiederkehrende Timer-Ereignis ab, das von
Progressbar.start()für diese Fortschrittsanzeige initiiert wurde.
Separator¶
Das Widget ttk.Separator zeigt eine horizontale oder vertikale Trennlinie an.
Es hat keine anderen Methoden außer denen, die von ttk.Widget geerbt wurden.
Optionen¶
Dieses Widget akzeptiert die folgende spezifische Option:
Option |
Beschreibung |
|---|---|
orient |
Einer von „horizontal“ oder „vertikal“. Gibt die Ausrichtung des Trennzeichens an. |
Sizegrip¶
Das Widget ttk.Sizegrip (auch als "grow box" bekannt) ermöglicht es dem Benutzer, das enthaltende Top-Level-Fenster durch Drücken und Ziehen des Griffs zu verkleinern/vergrößern.
Dieses Widget hat weder spezifische Optionen noch spezifische Methoden, außer denen, die von ttk.Widget geerbt wurden.
Plattformspezifische Hinweise¶
Unter macOS enthalten Top-Level-Fenster standardmäßig einen eingebauten Größenregler. Das Hinzufügen eines
Sizegripist harmlos, da der eingebaute Regler das Widget einfach überdeckt.
Bugs¶
Wenn die Position des enthaltenden Top-Level-Fensters relativ zur rechten oder unteren Bildschirmkante angegeben wurde (z. B. ...), wird das
SizegripWidget das Fenster nicht vergrößern/verkleinern.Dieses Widget unterstützt nur die Größenänderung „southeast“.
Treeview¶
Das Widget ttk.Treeview zeigt eine hierarchische Sammlung von Elementen an. Jedes Element hat eine Textbeschriftung, ein optionales Bild und eine optionale Liste von Datenwerten. Die Datenwerte werden in aufeinanderfolgenden Spalten nach der Baumlabels angezeigt.
Die Reihenfolge, in der Datenwerte angezeigt werden, kann durch Setzen der Widget-Option displaycolumns gesteuert werden. Das Baum-Widget kann auch Spaltenüberschriften anzeigen. Spalten können nach Nummer oder symbolischen Namen angesprochen werden, die in der Widget-Option columns aufgeführt sind. Siehe Column Identifiers.
Jedes Element wird durch einen eindeutigen Namen identifiziert. Das Widget generiert Element-IDs, wenn diese nicht vom Aufrufer bereitgestellt werden. Es gibt ein besonderes Wurzel-Element mit dem Namen {}. Das Wurzel-Element selbst wird nicht angezeigt; seine Kinder erscheinen in der obersten Ebene der Hierarchie.
Jedes Element hat auch eine Liste von Tags, die verwendet werden können, um Ereignisbindungen mit einzelnen Elementen zu verknüpfen und das Aussehen des Elements zu steuern.
Das Treeview-Widget unterstützt horizontale und vertikale Bildläufe gemäß den Optionen, die in Scrollable Widget Options beschrieben sind, und den Methoden Treeview.xview() und Treeview.yview().
Optionen¶
Dieses Widget akzeptiert die folgenden spezifischen Optionen
Option |
Beschreibung |
|---|---|
columns |
Eine Liste von Spaltenbezeichnern, die die Anzahl der Spalten und ihre Namen angeben. |
displaycolumns |
Eine Liste von Spaltenbezeichnern (entweder symbolisch oder ganzzahlige Indizes), die angeben, welche Datenspalten angezeigt werden und in welcher Reihenfolge sie erscheinen, oder der String „#all“. |
height |
Gibt die Anzahl der sichtbaren Zeilen an. Hinweis: Die angeforderte Breite wird aus der Summe der Spaltenbreiten ermittelt. |
padding |
Gibt den internen Abstand für das Widget an. Der Abstand ist eine Liste von bis zu vier Längenspezifikationen. |
selectmode |
Steuert, wie die integrierten Klassenbindungen die Auswahl verwalten. Einer von „extended“, „browse“ oder „none“. Wenn auf „extended“ (Standard) gesetzt, können mehrere Elemente ausgewählt werden. Wenn „browse“, wird immer nur ein Element gleichzeitig ausgewählt. Wenn „none“, wird die Auswahl nicht geändert. Beachten Sie, dass der Anwendungscode und Tag-Bindungen die Auswahl nach Belieben festlegen können, unabhängig vom Wert dieser Option. |
show |
Eine Liste, die null oder mehr der folgenden Werte enthält, die angeben, welche Elemente des Baums angezeigt werden.
Der Standardwert ist „tree headings“, d. h. alle Elemente werden angezeigt. Hinweis: Spalte #0 bezieht sich immer auf die Baumspalte, auch wenn show=„tree“ nicht angegeben ist. |
Element-Optionen¶
Die folgenden Element-Optionen können für Elemente in den Befehlen insert und item angegeben werden.
Option |
Beschreibung |
|---|---|
text |
Die anzuzeigende Textbeschriftung für das Element. |
image |
Ein Tk-Bild, das links vom Label angezeigt wird. |
Werte |
Die Liste der mit dem Element verknüpften Werte. Jedes Element sollte die gleiche Anzahl von Werten wie die Widget-Option columns haben. Wenn weniger Werte als Spalten vorhanden sind, werden die restlichen Werte als leer angenommen. Wenn mehr Werte als Spalten vorhanden sind, werden die zusätzlichen Werte ignoriert. |
open |
Ein boolescher Wert ( |
tags |
Eine Liste von Tags, die diesem Element zugeordnet sind. |
Tag-Optionen¶
Die folgenden Optionen können für Tags angegeben werden:
Option |
Beschreibung |
|---|---|
foreground |
Gibt die Vordergrundfarbe des Textes an. |
background |
Gibt die Hintergrundfarbe der Zelle oder des Elements an. |
font |
Gibt die zu verwendende Schriftart beim Zeichnen von Text an. |
image |
Gibt das Elementbild an, falls die Option image des Elements leer ist. |
Spaltenbezeichner¶
Spaltenbezeichner können eine der folgenden Formen annehmen:
Ein symbolischer Name aus der Liste der columns-Option.
Eine Ganzzahl n, die die n-te Datenspalte angibt.
Ein String der Form #n, wobei n eine Ganzzahl ist, die die n-te Anzeigespalte angibt.
Hinweise
Element-Optionswerte können in einer anderen Reihenfolge angezeigt werden, als sie gespeichert sind.
Spalte #0 bezieht sich immer auf die Baumspalte, auch wenn show=„tree“ nicht angegeben ist.
Eine Datenspaltennummer ist ein Index in der Liste der Element-Optionswerte; eine Anzeigespaltennummer ist die Spaltennummer im Baum, in der die Werte angezeigt werden. Baum-Labels werden in Spalte #0 angezeigt. Wenn die Option displaycolumns nicht gesetzt ist, wird die Datenspalte n in Spalte #n+1 angezeigt. Wiederum, **Spalte #0 bezieht sich immer auf die Baumspalte**.
Virtuelle Ereignisse¶
Das Treeview-Widget generiert die folgenden virtuellen Ereignisse.
Event |
Beschreibung |
|---|---|
<<TreeviewSelect>> |
Wird generiert, wenn sich die Auswahl ändert. |
<<TreeviewOpen>> |
Wird kurz vor dem Setzen des Fokus auf ein zu öffnendes Element generiert. |
<<TreeviewClose>> |
Wird kurz nach dem Setzen des Fokus auf ein zu schließendes Element generiert. |
Die Methoden Treeview.focus() und Treeview.selection() können verwendet werden, um das betroffene Element oder die betroffenen Elemente zu ermitteln.
ttk.Treeview¶
- class tkinter.ttk.Treeview¶
- bbox(item, column=None)¶
Gibt die Bounding Box (relativ zum Fenster des Treeview-Widgets) des angegebenen item im Format (x, y, width, height) zurück.
Wenn column angegeben ist, wird die Bounding Box dieser Zelle zurückgegeben. Wenn das item nicht sichtbar ist (d. h. wenn es ein Nachfahre eines geschlossenen Elements ist oder außerhalb des sichtbaren Bereichs gescrollt wurde), wird ein leerer String zurückgegeben.
- get_children(item=None)¶
Gibt die Liste der Kinder des item zurück.
Wenn item nicht angegeben ist, werden die Wurzelkinder zurückgegeben.
- set_children(item, *newchildren)¶
Ersetzt die Kinder von item durch newchildren.
Kinder, die in item vorhanden sind, aber nicht in newchildren, werden vom Baum getrennt. Keine Elemente in newchildren dürfen ein Vorfahre von item sein. Beachten Sie, dass das Nicht-Angeben von newchildren dazu führt, dass die Kinder von item getrennt werden.
- column(column, option=None, **kw)¶
Fragt die Optionen für die angegebene column ab oder modifiziert sie.
Wenn kw nicht angegeben ist, wird ein Dict der Spaltenoptionswerte zurückgegeben. Wenn option angegeben ist, wird der Wert für diese option zurückgegeben. Andernfalls werden die Optionen auf die entsprechenden Werte gesetzt.
Die gültigen Optionen/Werte sind:
- id
Gibt den Spaltennamen zurück. Dies ist eine Nur-Lese-Option.
- anchor: Einer der Standard-Tk-Ankerwerte.
Gibt an, wie der Text in dieser Spalte relativ zur Zelle ausgerichtet werden soll.
- minwidth: width
Die minimale Breite der Spalte in Pixeln. Das Treeview-Widget wird die Spalte nicht kleiner machen als durch diese Option angegeben, wenn das Widget neu dimensioniert wird oder der Benutzer eine Spalte zieht.
- stretch:
True/False Gibt an, ob die Breite der Spalte angepasst werden soll, wenn das Widget neu dimensioniert wird.
- width: width
Die Breite der Spalte in Pixeln.
Um die Baumspalte zu konfigurieren, rufen Sie diese mit column = „#0“ auf.
- delete(*items)¶
Löscht alle angegebenen items und alle ihre Nachfahren.
Das Wurzel-Element darf nicht gelöscht werden.
- detach(*items)¶
Entkoppelt alle angegebenen items vom Baum.
Die Elemente und alle ihre Nachfahren sind noch vorhanden und können an anderer Stelle im Baum wieder eingefügt werden, werden aber nicht angezeigt.
Das Wurzel-Element darf nicht entkoppelt werden.
- exists(item)¶
Gibt
Truezurück, wenn das angegebene item im Baum vorhanden ist.
- focus(item=None)¶
Wenn item angegeben ist, wird das Fokus-Element auf item gesetzt. Andernfalls wird das aktuelle Fokus-Element zurückgegeben, oder ein leerer String, wenn keines vorhanden ist.
- heading(column, option=None, **kw)¶
Fragt die Kopfzeilenoptionen für die angegebene column ab oder modifiziert sie.
Wenn kw nicht angegeben ist, wird ein Dict der Kopfzeilenoptionswerte zurückgegeben. Wenn option angegeben ist, wird der Wert für diese option zurückgegeben. Andernfalls werden die Optionen auf die entsprechenden Werte für die angegebene column gesetzt.
Die gültigen Optionen/Werte sind:
- text: text
Der Text, der in der Spaltenkopfzeile angezeigt werden soll.
- image: imageName
Gibt ein Bild an, das rechts von der Spaltenkopfzeile angezeigt werden soll.
- anchor: anchor
Gibt an, wie der Kopfzeilentext ausgerichtet werden soll. Einer der Standard-Tk-Ankerwerte.
- command: callback
Ein Callback, der aufgerufen wird, wenn auf die Kopfzeilenbeschriftung geklickt wird.
Um die Baumspaltenkopfzeile zu konfigurieren, rufen Sie diese mit column = „#0“ auf.
- identify(component, x, y)¶
Gibt eine Beschreibung der angegebenen component unter dem Punkt x und y zurück, oder einen leeren String, wenn keine solche component an dieser Position vorhanden ist.
- identify_row(y)¶
Gibt die Item-ID des Elements an der Position y zurück.
- identify_column(x)¶
Gibt den Datenspaltenbezeichner der Zelle an der Position x zurück.
Die Baumspalte hat die ID #0.
- identify_region(x, y)¶
Gibt einen der folgenden Werte zurück:
region
Bedeutung
heading
Bereich der Baumkopfzeile.
separator
Zwischenraum zwischen zwei Spaltenkopfzeilen.
tree
Der Baum-Bereich.
cell
Eine Datentabelle.
Verfügbarkeit: Tk 8.6.
- identify_element(x, y)¶
Gibt das Element an der Position x, y zurück.
Verfügbarkeit: Tk 8.6.
- index(item)¶
Gibt den ganzzahligen Index von item innerhalb der Kindliste seines Elternteils zurück.
- insert(parent, index, iid=None, **kw)¶
Erstellt ein neues Element und gibt den Elementbezeichner des neu erstellten Elements zurück.
parent ist die Item-ID des Elternelements oder ein leerer String, um ein neues Top-Level-Element zu erstellen. index ist eine Ganzzahl oder der Wert „end“, der angibt, wo in der Liste der Kindelemente des Elternteils das neue Element eingefügt werden soll. Wenn index kleiner oder gleich Null ist, wird der neue Knoten am Anfang eingefügt; wenn index größer oder gleich der aktuellen Anzahl von Kindern ist, wird er am Ende eingefügt. Wenn iid angegeben ist, wird es als Elementbezeichner verwendet; iid darf im Baum noch nicht vorhanden sein. Andernfalls wird ein neuer eindeutiger Bezeichner generiert.
Siehe Item Options für die Liste der verfügbaren Optionen.
- item(item, option=None, **kw)¶
Fragt die Optionen für das angegebene item ab oder modifiziert sie.
Wenn keine Optionen angegeben sind, wird ein Dict mit Optionen/Werten für das Element zurückgegeben. Wenn option angegeben ist, wird der Wert für diese Option zurückgegeben. Andernfalls werden die Optionen auf die entsprechenden Werte gesetzt, wie durch kw angegeben.
- move(item, parent, index)¶
Verschiebt item an die Position index in der Kindliste von parent.
Es ist illegal, ein Element unter einen seiner Nachfahren zu verschieben. Wenn index kleiner oder gleich Null ist, wird item an den Anfang verschoben; wenn größer oder gleich der Anzahl der Kinder, wird es ans Ende verschoben. Wenn item entkoppelt war, wird es wieder angekoppelt.
- next(item)¶
Gibt den Bezeichner des nächsten Geschwisters von item zurück, oder einen leeren String, wenn item das letzte Kind seines Elternteils ist.
- parent(item)¶
Gibt die ID des Elternteils von item zurück, oder einen leeren String, wenn item sich auf der obersten Ebene der Hierarchie befindet.
- prev(item)¶
Gibt den Bezeichner des vorherigen Geschwisters von item zurück, oder einen leeren String, wenn item das erste Kind seines Elternteils ist.
- reattach(item, parent, index)¶
Ein Alias für
Treeview.move().
- see(item)¶
Stellt sicher, dass item sichtbar ist.
Setzt die Option open aller Vorfahren von item auf
Trueund scrollt das Widget bei Bedarf, damit item im sichtbaren Bereich des Baums liegt.
- selection()¶
Gibt ein Tupel von ausgewählten Elementen zurück.
Geändert in Version 3.8:
selection()nimmt keine Argumente mehr entgegen. Zum Ändern des Selektionsstatus verwenden Sie die folgenden Selektionsmethoden.
- selection_set(*items)¶
items wird zur neuen Auswahl.
Geändert in Version 3.6: items können als separate Argumente übergeben werden, nicht nur als einzelnes Tupel.
- selection_add(*items)¶
Fügt items zur Auswahl hinzu.
Geändert in Version 3.6: items können als separate Argumente übergeben werden, nicht nur als einzelnes Tupel.
- selection_remove(*items)¶
Entfernt items aus der Auswahl.
Geändert in Version 3.6: items können als separate Argumente übergeben werden, nicht nur als einzelnes Tupel.
- selection_toggle(*items)¶
Schaltet den Selektionsstatus jedes Elements in items um.
Geändert in Version 3.6: items können als separate Argumente übergeben werden, nicht nur als einzelnes Tupel.
- set(item, column=None, value=None)¶
Mit einem Argument wird ein Dictionary von Spalten/Wert-Paaren für das angegebene item zurückgegeben. Mit zwei Argumenten wird der aktuelle Wert der angegebenen column zurückgegeben. Mit drei Argumenten wird der Wert der gegebenen column im gegebenen item auf den angegebenen value gesetzt.
- tag_bind(tagname, sequence=None, callback=None)¶
Bindet einen Callback für die gegebene Ereignissequenz an den Tag tagname. Wenn ein Ereignis an ein Element geliefert wird, werden die Callbacks für jeden Tag der Option des Elements aufgerufen.
- tag_configure(tagname, option=None, **kw)¶
Fragt die Optionen für den angegebenen tagname ab oder modifiziert sie.
Wenn kw nicht angegeben ist, wird ein Dict der Optionswerte für tagname zurückgegeben. Wenn option angegeben ist, wird der Wert für diese option für den angegebenen tagname zurückgegeben. Andernfalls werden die Optionen auf die entsprechenden Werte für den gegebenen tagname gesetzt.
- tag_has(tagname, item=None)¶
Wenn item angegeben ist, wird 1 oder 0 zurückgegeben, je nachdem, ob das angegebene item den gegebenen tagname hat. Andernfalls wird eine Liste aller Elemente zurückgegeben, die den angegebenen Tag haben.
Verfügbarkeit: Tk 8.6
- xview(*args)¶
Fragt die horizontale Position des Treeview ab oder modifiziert sie.
- yview(*args)¶
Fragt die vertikale Position des Treeview ab oder modifiziert sie.
Ttk Styling¶
Jedes Widget in ttk erhält einen Stil, der die Elemente, aus denen das Widget besteht, und deren Anordnung festlegt, zusammen mit dynamischen und Standardeinstellungen für Elementoptionen. Standardmäßig ist der Stilname derselbe wie der Klassenname des Widgets, er kann jedoch durch die Stiloption des Widgets überschrieben werden. Wenn Sie den Klassennamen eines Widgets nicht kennen, verwenden Sie die Methode Misc.winfo_class() (somewidget.winfo_class()).
Siehe auch
- Tcl’2004 Konferenzpräsentation
Dieses Dokument erklärt, wie die Theme-Engine funktioniert
- class tkinter.ttk.Style¶
Diese Klasse wird zur Manipulation der Stil-Datenbank verwendet.
- configure(style, query_opt=None, **kw)¶
Fragt den Standardwert der angegebenen Option(en) in style ab oder setzt ihn.
Jeder Schlüssel in kw ist eine Option und jeder Wert ist ein String, der den Wert für diese Option identifiziert.
Um beispielsweise jeden Standardknopf in einen flachen Knopf mit etwas Abstand und einer anderen Hintergrundfarbe zu ändern
from tkinter import ttk import tkinter root = tkinter.Tk() ttk.Style().configure("TButton", padding=6, relief="flat", background="#ccc") btn = ttk.Button(text="Sample") btn.pack() root.mainloop()
- map(style, query_opt=None, **kw)¶
Fragt dynamische Werte der angegebenen Option(en) in style ab oder setzt sie.
Jeder Schlüssel in kw ist eine Option und jeder Wert sollte eine Liste oder ein Tupel (üblicherweise) sein, das Zustandsdefinitionen enthält, die in Tupeln, Listen oder einer anderen Präferenz gruppiert sind. Eine Zustandsdefinition ist eine Zusammensetzung aus einem oder mehreren Zuständen und dann einem Wert.
Ein Beispiel mag es verständlicher machen
import tkinter from tkinter import ttk root = tkinter.Tk() style = ttk.Style() style.map("C.TButton", foreground=[('pressed', 'red'), ('active', 'blue')], background=[('pressed', '!disabled', 'black'), ('active', 'white')] ) colored_btn = ttk.Button(text="Test", style="C.TButton").pack() root.mainloop()
Beachten Sie, dass die Reihenfolge der (Zustände, Werte)-Sequenzen für eine Option wichtig ist. Wenn die Reihenfolge beispielsweise für die Vordergrundoption zu
[('active', 'blue'), ('pressed', 'red')]geändert wird, wäre das Ergebnis ein blauer Vordergrund, wenn sich das Widget im aktiven oder gedrückten Zustand befindet.
- lookup(style, option, state=None, default=None)¶
Gibt den für option in style angegebenen Wert zurück.
Wenn state angegeben ist, wird erwartet, dass es sich um eine Sequenz aus einem oder mehreren Zuständen handelt. Wenn das Argument default gesetzt ist, wird es als Fallback-Wert verwendet, falls keine Spezifikation für die Option gefunden wird.
Um zu überprüfen, welche Schriftart ein Knopf standardmäßig verwendet
from tkinter import ttk print(ttk.Style().lookup("TButton", "font"))
- layout(style, layoutspec=None)¶
Definiert das Widget-Layout für den gegebenen style. Wenn layoutspec weggelassen wird, wird die Layout-Spezifikation für den gegebenen Stil zurückgegeben.
layoutspec, falls angegeben, wird als Liste oder eine andere Sequenz (außer Strings) erwartet, wobei jedes Element ein Tupel sein sollte und das erste Element der Layout-Name ist und das zweite Element das im Layouts beschriebene Format haben sollte.
Um das Format zu verstehen, siehe das folgende Beispiel (es ist nicht dazu gedacht, etwas Nützliches zu tun)
from tkinter import ttk import tkinter root = tkinter.Tk() style = ttk.Style() style.layout("TMenubutton", [ ("Menubutton.background", None), ("Menubutton.button", {"children": [("Menubutton.focus", {"children": [("Menubutton.padding", {"children": [("Menubutton.label", {"side": "left", "expand": 1})] })] })] }), ]) mbtn = ttk.Menubutton(text='Text') mbtn.pack() root.mainloop()
- element_create(elementname, etype, *args, **kw)¶
Erstellt ein neues Element im aktuellen Theme vom gegebenen etype, das entweder "image", "from" oder "vsapi" sein sollte. Letzteres ist nur in Tk 8.6 unter Windows verfügbar.
Wenn "image" verwendet wird, sollten args den Standardbildnamen gefolgt von Zustandsdefinition/Wert-Paaren (dies ist die Bilder-Definition) enthalten, und kw kann die folgenden Optionen enthalten
- border=padding
padding ist eine Liste von bis zu vier ganzen Zahlen, die die linke, obere, rechte und untere Umrandung angeben.
- height=height
Gibt eine Mindesthöhe für das Element an. Wenn kleiner als Null, wird die Höhe des Basisbildes als Standard verwendet.
- padding=padding
Gibt den Innenabstand des Elements an. Standardmäßig wird der Wert von border übernommen, wenn nicht anders angegeben.
- sticky=spec
Gibt an, wie das Bild innerhalb des endgültigen Pakets platziert wird. spec enthält null oder mehr Zeichen "n", "s", "w" oder "e".
- width=width
Gibt eine Mindestbreite für das Element an. Wenn kleiner als Null, wird die Breite des Basisbildes als Standard verwendet.
Beispiel
img1 = tkinter.PhotoImage(master=root, file='button.png') img1 = tkinter.PhotoImage(master=root, file='button-pressed.png') img1 = tkinter.PhotoImage(master=root, file='button-active.png') style = ttk.Style(root) style.element_create('Button.button', 'image', img1, ('pressed', img2), ('active', img3), border=(2, 4), sticky='we')
Wenn "from" als Wert für etype verwendet wird, klont
element_create()ein vorhandenes Element. args sollte einen Theme-Namen enthalten, von dem das Element geklont wird, und optional ein Element, von dem geklont wird. Wenn dieses Element zum Klonen nicht angegeben ist, wird ein leeres Element verwendet. kw wird verworfen.Beispiel
style = ttk.Style(root) style.element_create('plain.background', 'from', 'default')
Wenn "vsapi" als Wert für etype verwendet wird, erstellt
element_create()ein neues Element im aktuellen Theme, dessen visuelle Darstellung mit der Microsoft Visual Styles API gezeichnet wird, die für die thematischen Stile unter Windows XP und Vista verantwortlich ist. args sollte die Visual Styles-Klasse und den Teil enthalten, wie in der Microsoft-Dokumentation angegeben, gefolgt von einer optionalen Sequenz von Tupeln mit ttk-Zuständen und dem entsprechenden Visual Styles API-Zustandswert. kw kann die folgenden Optionen enthalten- padding=padding
Gibt den Innenabstand des Elements an. padding ist eine Liste von bis zu vier ganzen Zahlen, die die linken, oberen, rechten und unteren Abstandsangaben angeben. Wenn weniger als vier Elemente angegeben sind, wird "bottom" auf "top" gesetzt, "right" auf "left" und "top" auf "left". Mit anderen Worten, eine Liste von drei Zahlen gibt den linken, vertikalen und rechten Abstand an; eine Liste von zwei Zahlen gibt den horizontalen und vertikalen Abstand an; eine einzelne Zahl gibt den gleichen Abstand rund um das Widget an. Diese Option darf nicht mit anderen Optionen kombiniert werden.
- margins=padding
Gibt den äußeren Abstand der Elemente an. padding ist eine Liste von bis zu vier ganzen Zahlen, die die linken, oberen, rechten und unteren Abstandsangaben angeben. Diese Option darf nicht mit anderen Optionen kombiniert werden.
- width=width
Gibt die Breite für das Element an. Wenn diese Option gesetzt ist, wird die Visual Styles API nicht nach der empfohlenen Größe oder dem Teil abgefragt. Wenn diese Option gesetzt ist, sollte auch height gesetzt werden. Die Optionen width und height können nicht mit den Optionen padding oder margins gemischt werden.
- height=height
Gibt die Höhe des Elements an. Siehe die Kommentare zu width.
Beispiel
style = ttk.Style(root) style.element_create('pin', 'vsapi', 'EXPLORERBAR', 3, [ ('pressed', '!selected', 3), ('active', '!selected', 2), ('pressed', 'selected', 6), ('active', 'selected', 5), ('selected', 4), ('', 1)]) style.layout('Explorer.Pin', [('Explorer.Pin.pin', {'sticky': 'news'})]) pin = ttk.Checkbutton(style='Explorer.Pin') pin.pack(expand=True, fill='both')
Geändert in Version 3.13: Unterstützung für den "vsapi"-Element-Factory hinzugefügt.
- element_names()¶
Gibt die Liste der im aktuellen Theme definierten Elemente zurück.
- element_options(elementname)¶
Gibt die Liste der Optionen von elementname zurück.
- theme_create(themename, parent=None, settings=None)¶
Erstellt ein neues Theme.
Es ist ein Fehler, wenn themename bereits existiert. Wenn parent angegeben ist, erbt das neue Theme Stile, Elemente und Layouts vom übergeordneten Theme. Wenn settings vorhanden sind, wird erwartet, dass sie die gleiche Syntax wie für
theme_settings()verwendet wird.
- theme_settings(themename, settings)¶
Setzt das aktuelle Theme vorübergehend auf themename, wendet die angegebenen settings an und stellt dann das vorherige Theme wieder her.
Jeder Schlüssel in settings ist ein Stil und jeder Wert kann die Schlüssel 'configure', 'map', 'layout' und 'element create' enthalten, die das gleiche Format wie in den Methoden
Style.configure(),Style.map(),Style.layout()undStyle.element_create()angegeben haben.Als Beispiel ändern wir den Combobox für das Standardtheme ein wenig
from tkinter import ttk import tkinter root = tkinter.Tk() style = ttk.Style() style.theme_settings("default", { "TCombobox": { "configure": {"padding": 5}, "map": { "background": [("active", "green2"), ("!disabled", "green4")], "fieldbackground": [("!disabled", "green3")], "foreground": [("focus", "OliveDrab1"), ("!disabled", "OliveDrab2")] } } }) combo = ttk.Combobox().pack() root.mainloop()
- theme_names()¶
Gibt eine Liste aller bekannten Themes zurück.
- theme_use(themename=None)¶
Wenn themename nicht angegeben ist, wird das aktuell verwendete Theme zurückgegeben. Andernfalls wird das aktuelle Theme auf themename gesetzt, alle Widgets werden aktualisiert und ein <<ThemeChanged>>-Ereignis wird gesendet.
Layouts¶
Ein Layout kann einfach None sein, wenn es keine Optionen benötigt, oder ein Dictionary von Optionen, die die Anordnung des Elements spezifizieren. Der Layout-Mechanismus verwendet eine vereinfachte Version des Pack-Geometri-Managers: Gegeben eine anfängliche Lücke, wird jedem Element ein Paket zugewiesen.
Die gültigen Optionen/Werte sind:
- side: whichside
Gibt an, auf welcher Seite der Lücke das Element platziert werden soll; einer von oben, rechts, unten oder links. Wenn weggelassen, nimmt das Element die gesamte Lücke ein.
- sticky: nswe
Gibt an, wo das Element innerhalb seines zugewiesenen Pakets platziert wird.
- unit: 0 oder 1
Wenn auf 1 gesetzt, werden das Element und alle seine Nachkommen für die Zwecke von
Widget.identify()usw. als ein einziges Element behandelt. Es wird für Dinge wie Scrollbar-Daumen mit Griffen verwendet.- children: [sublayout… ]
Gibt eine Liste von Elementen an, die innerhalb des Elements platziert werden sollen. Jedes Element ist ein Tupel (oder ein anderer Sequenztyp), bei dem das erste Element der Layout-Name und die anderen ein Layout sind.