tkinter - ttk.PanedWindow

ttk.PanedWindow

ttk.PanedWindow erzeugen

pw = ttk.PanedWindow(parent, Optionen)

PanedWindow kennt die Optionen:

OptionsnameBeschreibung
height, widthHöhe/Breite in Pixel
orientAnordnung der Panes: tk.HORIZONTAL: Panes werden von links nach rechts angeordnet, tk.VERTICAL: von oben nach unten

ttk.PanedWindow kennt die Standardoptionen: class_, cursor, style und takefocus

Dazu kommt die Paneoption für jedes Teilfenster: weight: relativer Stretchfaktor für das Teilfenster, kann bei pw.add(…) angegeben werden.

Das folgende Programm stellt ein PaneWindow vor, bei dem zwei Frames von links nach rechts angeordnet werden:

Bild der Anwendung
import tkinter as tk
from tkinter import ttk
from tkinter import font

class A(tk.Tk):
    def __init__(self):
        super().__init__()
        self.geometry('400x400')
        self._createWidgets()

    def _createWidgets(self):
        pw = ttk.PanedWindow(self, orient=tk.HORIZONTAL)
        pw.pack(fill=tk.BOTH, expand=tk.YES)

        f = ttk.Frame(pw, relief=tk.SUNKEN)
        ttk.Label(f, text='Oben', background='green').pack(fill=tk.BOTH, expand=tk.YES)
        pw.add(f, weight=3)

        g = ttk.Frame(pw, relief=tk.RAISED)
        ttk.Label(g, text='Unten', background='blue').pack(fill=tk.BOTH, expand=tk.YES)
        pw.add(g, weight=5)

if __name__ == '__main__':
    window = A()
    window.mainloop()

PanedWindow-Methoden

MethodeParameterRückgabewertBeschreibung
p.add(w, weight=N)w: Widget (bspw. ein Frame), weight: (optional) Gewichtung-Fügt ein neues Pane-Widget ein
p.forget(pane)pane: Index oder Widget-Entfernt ein Pane-Widget
p.insert(where, w, weight=N)where: Index, 'end' oder Widget, w: neues Pane, weight: (optional) Gewichtung- Fügt ein neues Pane-Widget an einer Position ein
p.panes()-ListeListe der Child-Widgets in Tcl/Tk-Notation
p.sashpos(leiste, pos)Nummer der Leiste / des Anfassers und eine Position als ganze ZahlAktuelle Position als ganze Zahl Verschiebt die Leiste, also den Trenner zwischen Panes, auf pos.

Folgende allgemeine Widget-Methoden werden unterstüzt:

Virtuelle Ereignisse

PanedWindow kennt das virtuelle Ereignis '<<EnteredChild>>' -- Wechselt die Maus von einem Pane zu einem anderen und kreuzt dabei den Trenner, dann wird dieses Ereignis ausgelöst.

Referenzen

Siehe Auch

https://www.tcl.tk/man/tcl8.7/TkCmd/ttk_panedwindow.html