Tkinter之grid所有屬性詳解

2021-10-01 06:12:18 字數 3397 閱讀 6042

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...