tkinter
Tkinter Geometrie-Manager
Suche…
Einführung
Es gibt drei Geometriemanager zum Positionieren von Widgets: pack()
, grid()
und place()
.
Pack()
Der pack()
Geometrie-Manager organisiert Widgets in Blöcken, bevor sie im übergeordneten Widget platziert werden. Es verwendet die Optionen fill
, expand
und side
.
Syntax
widget.pack(option)
Füllen
Legt fest, ob das Widget den minimal erforderlichen Speicherplatz beibehält oder zusätzlichen Speicherplatz beansprucht. Attribute: NONE (Standard), X (horizontal füllen), Y (vertikal füllen) oder BEIDE (horizontal und vertikal füllen).
Erweitern
Bei der Einstellung YES wird das Widget erweitert, um alle Bereiche zu füllen, die nicht im übergeordneten Element des Widgets verwendet werden. Attribute: JA, NEIN.
Seite
Bestimmt, auf welche Seite des übergeordneten Elements des Widgets es gepackt wird. Attribute: TOP (Standard), UNTEN, LINKS oder RECHTS.
Beispiel
from tkinter import *
root = Tk()
btn_fill = Button(root, text="Button")
btn_fill.pack(fill=X)
btn_expand = Button(root, text="Button")
btn_expand.pack(expand=YES)
btn_side = Button(root, text="Button")
btn_side.pack(side=RIGHT)
root.mainloop()
Ergebnis
Gitter()
Der grid()
Geometrie-Manager organisiert Widgets in einer tabellenartigen Struktur im übergeordneten Widget. Das Master-Widget ist in Zeilen und Spalten aufgeteilt, und jeder Teil der Tabelle kann ein Widget enthalten. Es verwendet column
, columnspan
, ipadx
, ipady
, padx
, pady
, row
, rowspan
und sticky
.
Syntax
widget.grid(options)
Säule
Die Spalte, in die das Widget eingefügt werden soll. Die Standardspalte ist 0 (linke Spalte).
Columnspan
Wie viele Spalten das Widget beansprucht. Der Standardwert ist 1.
Ipadx
Wie viele Pixel sollen das Widget horizontal innerhalb der Widget-Grenzen auffüllen.
Ipady
Wie viele Pixel müssen das Widget vertikal innerhalb der Widget-Grenzen auffüllen.
Padx
Wie viele Pixel müssen Widget außerhalb der Widget-Grenzen horizontal auffüllen.
Pady
Wie viele Pixel müssen das Widget vertikal außerhalb der Grenzen des Widget auffüllen.
Reihe
Die Zeile, in die das Widget eingefügt werden soll. Die Standardzeile ist 0 (oberste Spalte).
Rowspan
Wie viele Zeilen das Widget belegt. Der Standardwert ist 1.
Klebrig
Wenn das Widget kleiner als die Zelle ist, wird sticky
verwendet, um anzuzeigen, an welchen Seiten und Ecken der Zelle sich das Widget befindet. Die Richtung wird durch Kompassrichtungen definiert: N, E, S, W, NE, NW, SE und SW und Null. Dies kann eine Zeichenfolgenverkettung sein, z. B. NESW, damit das Widget den gesamten Bereich der Zelle einnimmt.
Beispiel
from tkinter import *
root = Tk()
btn_column = Button(root, text="I'm in column 3")
btn_column.grid(column=3)
btn_columnspan = Button(root, text="I have a columnspan of 3")
btn_columnspan.grid(columnspan=3)
btn_ipadx = Button(root, text="ipadx of 4")
btn_ipadx.grid(ipadx=4)
btn_ipady = Button(root, text="ipady of 4")
btn_ipady.grid(ipady=4)
btn_padx = Button(root, text="padx of 4")
btn_padx.grid(padx=4)
btn_pady = Button(root, text="pady of 4")
btn_pady.grid(pady=4)
btn_row = Button(root, text="I'm in row 2")
btn_row.grid(row=2)
btn_rowspan = Button(root, text="Rowspan of 2")
btn_rowspan.grid(rowspan=2)
btn_sticky = Button(root, text="I'm stuck to north-east")
btn_sticky.grid(sticky=NE)
root.mainloop()
Ergebnis
Platz()
Der place()
Manager organisiert Widgets, indem diese an einer bestimmten Stelle im übergeordneten Widget platziert werden. Diese Geometrie - Manager verwendet die Optionen anchor
, bordermode
, height
, width
, relheight
, relwidth
, relx
, rely
, x
und y
.
Anker
Gibt an, wo das Widget verankert ist. Die Optionen sind Kompassrichtungen: N, E, S, W, NE, NW, SE oder SW, die sich auf die Seiten und Ecken des übergeordneten Widgets beziehen. Der Standardwert ist NW (die obere linke Ecke des Widget).
Bordermode
Bordermode verfügt über zwei Optionen: INSIDE
, die angibt, dass sich andere Optionen auf das Innere des übergeordneten Elements beziehen (Ignorieren der Ränder des übergeordneten OUTSIDE
) und OUTSIDE
(entgegengesetzt).
Höhe
Geben Sie die Höhe eines Widgets in Pixel an.
Breite
Geben Sie die Breite eines Widgets in Pixel an.
Relheight
Höhe als Float zwischen 0,0 und 1,0 als Bruchteil der Höhe des übergeordneten Widgets.
Relwidth
Breite als Float zwischen 0,0 und 1,0 als Bruchteil der Breite des übergeordneten Widgets.
Relx
Horizontaler Versatz als Float zwischen 0,0 und 1,0 als Bruchteil der Breite des übergeordneten Widgets.
Verlassen Sie sich
Vertikaler Versatz als Float zwischen 0,0 und 1,0 als Bruchteil der Höhe des übergeordneten Widgets.
X
Horizontaler Versatz in Pixel.
Y
Vertikaler Versatz in Pixel.
Beispiel
from tkinter import *
root = Tk()
root.geometry("500x500")
btn_height = Button(root, text="50px high")
btn_height.place(height=50, x=200, y=200)
btn_width = Button(root, text="60px wide")
btn_width.place(width=60, x=300, y=300)
btn_relheight = Button(root, text="Relheight of 0.6")
btn_relheight.place(relheight=0.6)
btn_relwidth= Button(root, text="Relwidth of 0.2")
btn_relwidth.place(relwidth=0.2)
btn_relx=Button(root, text="Relx of 0.3")
btn_relx.place(relx=0.3)
btn_rely=Button(root, text="Rely of 0.7")
btn_rely.place(rely=0.7)
btn_x=Button(root, text="X = 400px")
btn_x.place(x=400)
btn_y=Button(root, text="Y = 321")
btn_y.place(y=321)
root.mainloop()
Ergebnis