tkinter
Tkinter Geometry Managers
Sök…
Introduktion
Det finns tre geometrihanterare att placera widgets: pack()
, grid()
och place()
.
packa()
pack()
geometrihanteraren organiserar widgetar i block innan de placeras i överordnade widget. Den använder alternativen fill
, expand
och side
.
Syntax
widget.pack(option)
Fylla
Bestämmer om widgeten behåller det minimala utrymme som behövs eller tar upp extra utrymme som tilldelats den. Attribut: INGEN (standard), X (fyll horisontellt), Y (fyll vertikalt) eller BÅDE (fyll både horisontellt och vertikalt).
Bygga ut
När inställd på JA, expanderar widgeten för att fylla utrymme som inte används i widgetens överordnade. Attribut: JA, NEJ.
Sida
Bestämmer vilken sida av widgetens överordnade den packar till. Attribut: TOPP (standard), BOTTOM, VÄNSTER eller HÖGER.
Exempel
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()
Resultat
rutnät()
grid()
geometrihanteraren organiserar widgetar i en tabellliknande struktur i överordnade widget. Huvudwidgeten är uppdelad i rader och kolumner, och varje del av tabellen kan innehålla en widget. Den använder column
, columnspan
, ipadx
, ipady
, padx
, pady
, row
, rowspan
och sticky
.
Syntax
widget.grid(options)
Kolumn
Kolumnen att lägga in widgeten. Standardkolumnen är 0, vilket är den längsta kolumnen till vänster.
Columnspan
Hur många kolumner widget tar upp. Standardvärdet är 1.
Ipadx
Hur många pixlar som ska plocka widget horisontellt inom widgetens gränser.
Ipady
Hur många pixlar som ska plocka widgeten vertikalt inom widgetens gränser.
Padx
Hur många pixlar att padda widget horisontellt utan widgetens gränser.
Pady
Hur många pixlar att padda widgeten vertikalt utanför widgetens gränser.
Rad
Raden att lägga in widgeten. Standardraden är 0, som är den översta kolumnen.
rowspan
Hur många rader widgeten tar upp. Standardvärdet är 1.
Klibbig
När widgeten är mindre än cellen används sticky
för att indikera vilka sidor och hörn på cellen widgeten fastnar på. Riktningen definieras av kompassriktningar: N, E, S, W, NE, NW, SE och SW och noll. Dessa kan vara en strängkoncatenation, till exempel, NESW gör att widgeten tar upp hela området.
Exempel
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()
Resultat
plats()
place()
-hanteraren organiserar widgetar genom att placera dem i en specifik position i överordnade widget. Denna geometri manager använder alternativ anchor
, bordermode
, height
, width
, relheight
, relwidth
, relx
, rely
, x
och y
.
Ankare
Anger var widgeten är förankrad till. Alternativen är kompassriktningar: N, E, S, W, NE, NW, SE eller SW, som relaterar till sidorna och hörnen på överordnad widget. Standard är NW (det övre vänstra hörnet av widgeten)
Bordermode
Bordermode har två alternativ: INSIDE
, vilket indikerar att andra alternativ hänvisar till föräldrarnas insida, (Ignorerar föräldrarnas gränser) och OUTSIDE
, vilket är motsatsen.
Höjd
Ange höjden på en widget i pixlar.
Bredd
Ange bredden på en widget i pixlar.
Relheight
Höjd som en flottör mellan 0,0 och 1,0, som en bråkdel av höjden på överordnad widget.
Relwidth
Bredd som en flottör mellan 0,0 och 1,0, som en bråkdel av bredden på överordnad widget.
relx
Horisontell offset som en flottör mellan 0,0 och 1,0, som en bråkdel av bredden på överordnad widget.
Bero
Vertikal offset som en flottör mellan 0,0 och 1,0, som en bråkdel av höjden på överordnad widget.
X
Horisontell offset i pixlar.
Y
Vertikal förskjutning i pixlar.
Exempel
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()
Resultat