tkinter的grid()方法記錄
我理解的grid方法就是需要將容器如何放置在你的視窗上面,主要是將視窗劃分為一些行列的網格,理解方式可以按照excel中的行列理解,少許不同的就是row和column的數值在grid中是相對的大小,而不是excel中絕對位置的概念。grid最重要的是按照行列劃分後放在指定的位置,和**順序無關。
首先pack()方法的屬性有如下幾個:
-row, -column, rowspan, columnspan, -ipadx, -ipady, -padx, -pady, -sticky
其中grid方法可以應用於tkinter內的所有容器;
row引數表示的是容器將要放置在視窗劃分好的第幾行,(從0開始)
column引數表示的是容器將要放置在視窗劃分好的第幾列,(從0開始)
行列是相對值得概念;
同乙個行列單元,重複放置會重疊顯示,後放置的覆蓋先放置;
import tkinter as tk
window = tk.tk(
)#window.geometry("300x300")
tk.button(window,text=
"第0行第0列"
).grid(row=
0,column=0)
tk.button(window,text=
"第0行第1列"
).grid(row=
0,column=1)
tk.button(window,text=
"第0行第2列"
).grid(row=
0,column=5)
#此處雖然將column設定為5,但是還是會放在column=2的地方
tk.button(window,text=
"第1行第0列"
).grid(row=
1,column=0)
tk.button(window,text=
"第1行第1列"
).grid(row=
1,column=1)
tk.button(window,text=
"覆蓋"
).grid(row=
1,column=1)
#將2個不同的容器放置在同乙個位置上式疊加顯示的
window.mainloop()結果
這2個引數配合row和column使用,表示將對應行列單元格的row或者column合併為乙個使用。
import tkinter as tk
window = tk.tk(
)window.geometry(
"300x300"
)tk.button(window,text=
"第乙個"
,bg=
"green"
).grid(row=
0,column=
0,rowspan=
2,columnspan=2)
tk.button(window,text=
"第二個"
,bg=
"red"
).grid(row=
0,column=
2,columnspan=2)
tk.button(window,text=
"第1行第2列"
).grid(row=
1,column=2)
tk.button(window,text=
"第1行第3列"
).grid(row=
1,column=3)
tk.button(window,text=
"第2行第0列"
).grid(row=
2,column=0)
tk.button(window,text=
"第2行第1列"
).grid(row=
2,column=1)
tk.button(window,text=
"第2行第2列"
).grid(row=
2,column=2)
tk.button(window,text=
"第2行第3列"
).grid(row=
2,column=3)
window.mainloop(
)結果如下:
表示tkinter屬性放置時在對應row,column內的對齊方式;
sticky屬性的引數有n,s,e,w,ne,nw,se,sw可選,預設居中
import tkinter as tk
window = tk.tk(
)#window.geometry("300x300")
tk.button(window,text=
"第乙個"
,bg=
"green"
).grid(row=
0,column=
0,rowspan=
2,columnspan=
2,sticky=
"se"
)tk.button(window,text=
"第二個"
,bg=
"red"
).grid(row=
0,column=
2,columnspan=
2,sticky=
"e")
tk.button(window,text=
"第1行第2列"
).grid(row=
1,column=2)
tk.button(window,text=
"第1行第3列"
).grid(row=
1,column=3)
tk.button(window,text=
"第2行第0列"
).grid(row=
2,column=0)
tk.button(window,text=
"第2行第1列"
).grid(row=
2,column=1)
tk.button(window,text=
"第2行第2列"
).grid(row=
2,column=2)
tk.button(window,text=
"第2行第3列"
).grid(row=
2,column=3)
window.mainloop(
)結果如下:
猜數字之tkinter
import random import tkinter import tkinter.messagebox defb clicked if name entry.get tkinter.messagebox.showerror title error message 請輸入使用者名字 else c...
Tkinter 之ProgressBar進度條標籤
一 引數說明 引數作用 cursor 滑鼠位於進度條內時的形狀 length 進度條長度 maximum 進度條最大刻度值 mode 進度條的模式。有兩種 determinate 和 indeterminate orient 進度條的方向,有horizontal 和vertical兩種 style ...
tkinter之listbox列表控制項
listbox列表控制項 import tkinter as tk window tk.tk window.title my window 設定視窗的名字 window.geometry 240x260 設定視窗大小 var1 tk.strin ar 設定變數 l tk.label window,b...