ttk.Notebook
ttk.Notebook erzeugen
nb = ttk.Notebook(parent, Optionen)
| Optionsname | Beschreibung |
|---|---|
| height, width | Höhe, Breite in Pixeln |
| padding | Extra Platz um das Notebook, Anzahl der Parameter bestimmen, welcher Platz gemeint ist, es sind maximal 4 Angaben erlaubt: links-oben-rechts-unten oder links-oben/unten-rechts oder horizontal-vertikal oder einfach nur Randplatz |
ttk.Notebook kennt die Standardoptionen: class_, cursor, style und takefocus
Notebook Tabs
Die folgende Tabelle zeigt die Tab-Optionen. Diese werden bei nb.add(…) angegeben, siehe unten:
| Optionsname | Beschreibung |
|---|---|
| state | tk.NORMAL, tk.HIDDEN (versteckt) oder
tk.DISABLED |
| sticky | Positionierung: Kombinationen aus tk.N,
tk.S, tk.W und tk.E |
| padding | Platz zwischen Notebook und Tab-Fenster |
| text | Titel des Tabs |
| image | Bild im Titel |
| compound | Anordnung von Text und Bild im Titelbereich, wenn beides vorhanden ist. Siehe Labeloptionen |
| underline | Positiver ganzzahlige Index, der den zu unterstreichenden Buchstaben referenziert. |
Das folgende Programm stellt ein Notebook vor:
import tkinter as tk
from tkinter import ttk
class A(tk.Tk):
def __init__(self):
super().__init__()
self.geometry('400x400')
self._createWidgets()
def _createWidgets(self):
nb = ttk.Notebook(self)
nb.pack(fill=tk.BOTH, expand=tk.YES)
f = ttk.Frame(nb, relief=tk.SUNKEN)
ttk.Label(f, text='Erster Tab').pack(fill=tk.BOTH, expand=tk.YES)
nb.add(f, text='Test1', sticky=tk.S)
f = ttk.Frame(nb, relief=tk.SUNKEN)
ttk.Label(f, text='Zweiter Tab').pack(fill=tk.BOTH, expand=tk.YES)
nb.add(f, text='Test2', sticky=tk.N+tk.S, padding=5)
f = ttk.Frame(nb, relief=tk.SUNKEN)
ttk.Label(f, text='Dritter Tab').pack(fill=tk.BOTH, expand=tk.YES)
nb.add(f, text='Test3', padding=5)
if __name__ == '__main__':
window = A()
window.mainloop()
Notebook-Methoden
tabId:
- Nummer: ein Index zwischen 0 und der Anzahl der Tabs
- name: Tabname (s.
nb.tabs() @x,y: Eine Position'current': der aktuell hervorgehobene Tab'end': nur fürnb.index(), liefert dort die Anzahl der Tabs zurück
| Funktion | Parameter | Rückgabewert | Beschreibung |
|---|---|---|---|
| nb.add(child, optionen) | child: Widget wie etwa ein Frame, optionen: Tab-Optionen |
- | child wird als neuer Tab angehängt. War der Tab dort lediglich versteckt, dann
wird er wieder an der ursprünglichen Stelle sichtbar |
| nb.enable_traversal() | - | - | Fügt ergänzende Tasturbindungen hinzu: Strg-Tab: Nächster Tab,
Shift-Strg-Tab: vorheriger Tab, Alt-X wählt einen Tab aus, der mit text
und underline entsprechend markiert wurde. x ist dann der unterstrichene Buchstabe |
| nb.forget(tabId) | tabId | - | Tab wird entfernt |
| nb.hide(tabId) | tabId | - | Versteckt den Tab mit gegebener ID. Kann mit add(…) wieder sichtbar gemacht werden |
| nb.identify(x, y) | Position | Name eines Tabs oder leerer String | Gibt den Namen eines Tabs an der Position zurück, oder einen leeren String. (TODO: Zur Zeit nicht vollständig unterstützt) |
| nb.index(tabId) | tabId | Index oder Anzahl | Zu einer gegebenen tabId wird der Index des Tabs zurückgegeben.
Der String 'end' fragt die Anzahl der Tabs ab |
| nb.insert(tabId, child,optionen) | tabId, child: Widget, optionen: Tab-Optionen | - | Fügt einen neuen Tab an einer angegebenen Position ein. Ist der Tab schon vorhanden, dann wird er an die entsprechnde Position verschoben. |
| nb.select(tabId) | tabId (optional) | Nichts oder Fenstername in Tcl/Tk Schreibweise | Ohne Argument: Fenstername wird zurückgegeben, Mit tabId wird dieser Tab ausgewählt |
| nb.tab(tabId, option=None, …) | tabId, option: Tab-Option als Optionsname oder Schlüssel-Wert-Paare | nichts, Wert oder Dictionary | Setzt Tab-Optionen für einen Tab. Kann eine Option abfragen: option='text' gibt
den Wert zurück. Ohne Optionen/Keyword liefert die Funktion ein Dictionary mit allen
gesetzten Optionen |
| nb.tabs() | - | Liste von Fensternamen in Tcl/Tk-Schreibweise | Gibt eine Liste von Tab-Fensternamen zurück. Dieses ist zur Zeit die einzige Möglichkeit, an den Tabnamen eines Tabs zu kommen. |
Es werden ferner die Standardmethoden:
- Konfigurationsmethoden:
cget(…)undconfigure(…) - Sonstige Methoden:
identify(…),instate(…)undstate(…)
unterstützt.
Virtuelle Ereignisse
Notebook kennt das virtuelle Ereignis '<<NotebookTabChanged>>' -- ein neuer Tab wurde ausgewählt.