tkinter
Tkinter Geometry Managers
Zoeken…
Invoering
Er zijn drie geometriemanagers om widgets te positioneren: pack()
, grid()
en place()
.
pack ()
De geometrie manager pack()
organiseert widgets in blokken voordat ze in de bovenliggende widget worden geplaatst. Het maakt gebruik van de opties fill
, expand
en side
.
Syntaxis
widget.pack(option)
Vullen
Bepaalt of de widget de minimaal benodigde ruimte behoudt of extra toegewezen ruimte in beslag neemt. Attributen: GEEN (standaard), X (horizontaal vullen), Y (verticaal vullen) of BEIDE (zowel horizontaal als verticaal vullen).
Uitbreiden
Indien ingesteld op JA, breidt de widget uit om elke ruimte te vullen die niet in het bovenliggende element van de widget wordt gebruikt. Attributen: JA, NEE.
Kant
Bepaalt aan welke kant van het bovenliggende element van de widget het wordt verpakt. Attributen: TOP (standaard), BOTTOM, LEFT of RIGHT.
Voorbeeld
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()
Resultaat
rooster ()
De geometrie manager van grid()
organiseert widgets in een tabelachtige structuur in de bovenliggende widget. De hoofdwidget is opgedeeld in rijen en kolommen en elk deel van de tabel kan een widget bevatten. Het maakt gebruik van column
, columnspan
, ipadx
, ipady
, padx
, pady
, row
, rowspan
en sticky
.
Syntaxis
widget.grid(options)
Kolom
De kolom om de widget in te plaatsen. De standaardkolom is 0, wat de meest linkse kolom is.
Columnspan
Hoeveel kolommen-widget neemt in beslag. De standaardwaarde is 1.
Ipadx
Hoeveel pixels om de widget horizontaal binnen de randen van de widget op te nemen.
Ipady
Hoeveel pixels om de widget verticaal in de randen van de widget op te nemen.
Padx
Hoeveel pixels om de widget horizontaal buiten de randen van de widget op te nemen.
Pady
Hoeveel pixels om de widget verticaal buiten de randen van de widget op te nemen.
Rij
De rij om de widget in te plaatsen. De standaardrij is 0, de bovenste kolom.
rowspan
Hoeveel rijen de widget in beslag neemt. De standaardwaarde is 1.
Kleverig
Wanneer de widget kleiner is dan de cel, wordt sticky
gebruikt om aan te geven aan welke zijden en hoeken van de cel de widget blijft plakken. De richting wordt bepaald door kompasrichtingen: N, E, S, W, NE, NW, SE en SW en nul. Dit kan een aaneenschakeling zijn, bijvoorbeeld, NESW laat de widget het volledige gebied van de cel beslaan.
Voorbeeld
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()
Resultaat
plaats()
De manager place()
organiseert widgets door ze op een specifieke positie in de bovenliggende widget te plaatsen. Deze geometrie manager gebruikt de mogelijkheden anchor
, bordermode
, height
, width
, relheight
, relwidth
, relx
, rely
, x
en y
.
Anker
Geeft aan waar de widget aan is verankerd. De opties zijn kompasrichtingen: N, E, S, W, NE, NW, SE of SW, die betrekking hebben op de zijkanten en hoeken van de bovenliggende widget. De standaardwaarde is NW (de linkerbovenhoek van de widget)
Bordermode
De grensmodus heeft twee opties: INSIDE
, wat aangeeft dat andere opties verwijzen naar de binnenkant van de ouder (de randen van de ouder negeren) en OUTSIDE
, wat het tegenovergestelde is.
Hoogte
Geef de hoogte van een widget op in pixels.
Breedte
Geef de breedte van een widget op in pixels.
Relheight
Hoogte als een zweven tussen 0,0 en 1,0, als een fractie van de hoogte van de bovenliggende widget.
Relwidth
Breedte als een zweven tussen 0,0 en 1,0, als een fractie van de breedte van de bovenliggende widget.
relx
Horizontale offset als een float tussen 0.0 en 1.0, als een fractie van de breedte van de bovenliggende widget.
Vertrouwen
Verticale offset als een float tussen 0.0 en 1.0, als een fractie van de hoogte van de bovenliggende widget.
X
Horizontale offset in pixels.
Y
Verticale offset in pixels.
Voorbeeld
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()
Resultaat