標籤:imp 取值 row href 文章 grid 單位 center 參數
pack布局
pack 函數預設先使用的放到上面,然後依次向下排,水平位置置中(相對父視窗)
pack 參數 [ 參數值必須大寫 ]
side:按扭停靠在視窗的哪個位置
left:左 、 top: 上 、right: 右、botton:下
fill:填充
x:水平方向填充、y:豎直方向填充、both:水平和豎直方向填充、none:不填充
expand:是否擴充空白區
yes:擴充整個空白區、no:不擴充
anchor:位置
N:北 下、E:東 右、S:南 下、W:西 左、CENTER:中間
padx: x方向的外邊距
pady: y方向的外邊距
ipadx: x方向的內邊距
ipady: y方向的內邊距
from tkinter import *root = Tk()Button(root,text=‘G‘).pack(anchor=E,padx=20)root.mainloop()
grid 布局
grid 函數也支援諸如 ipadx,ipady,padx,pady,它們 的意思和 pack 函數是一樣的,預設邊距是 0;
grid 布局是網格格式 ,用 row 表示行,用 column 表示列,其中值得 注意的是 row 和 column 的編號都從 0 開始
grid 參數
row 表示行
column 表示列
sticky:它決定了這個組件是從哪個方向開始的
N:北 上、E:東 右、S:南 下、W:西 左
rowspan : 跨越(合并)的行數
columnspan: 跨越(合并)的列數
from tkinter import *tk=Tk()var=IntVar()#標籤控制項,顯示文本和位元影像,展示在第一行Label(tk,text="First").grid(row=0,sticky=E)#靠右Label(tk,text="Second").grid(row=1,sticky=W)#第二行,靠左#輸入控制項Entry(tk).grid(row=0,column=1,padx=10,pady=10)Entry(tk).grid(row=1,column=1)#多選框外掛程式button=Checkbutton(tk,text="Precerve aspect",variable=var)button.grid(row=2,columnspan=2,sticky=W)#插入圖片photo=PhotoImage(file="wm.png")label=Label(image=photo)label.grid(row=0,column=2,rowspan=2,columnspan=2, sticky=W+E+N+S, padx=5, pady=5)#合并兩行,兩列,置中,四周外延5個長度#按鈕控制項button1=Button(tk,text="Zoom in")button1.grid(row=2,column=2)button2=Button(tk,text="Zoom out")button2.grid(row=2,column=3)#主事件迴圈mainloop()
place 布局
place 最簡單最靈活的一種布局,使用組件座標來放置組件的位置。但是不太推薦使用,在不同解析度下,介面往往有較大差異。
place 參數
anchor:位置,預設值為 NW 同pack布局
x、y: 組件左上方的x、y座標 整數,預設值0 絕對位置座標,單位像素
relx、rely :組件相對於父容器的x、y座標 0~1之間浮點數 相對位置,0.0表示左邊緣(或上邊緣),1.0表示右邊緣(或下邊緣)
width、height :組件的寬度、高度 非負整數 單位像素
relwidth、relheight :組件相對於父容器的寬度、高度 0~1之間浮點數 與relx(rely)取值相似
bordermode: 如果設定為INSIDE,組件內部的大小和位置是相對的,不包括邊框;如果是OUTSIDE,組件的外部大小是相對的,包括邊框 INSIDE、OUTSIDE(預設值INSIDE) 可以使用常量INSIDE、OUTSIDE,也可以使用字串形式”inside”、”outside”
from tkinter import *root = Tk()Button(root,text=‘G‘).place(x=20,y=30,width=30,height=40,bordermode=INSIDE)root.mainloop()
相關文章:Python GUI之tkinter布局管理
python tkinter 布局