新聞中心
很多時候 Tkinter 界面編程都會優(yōu)先考慮使用 Pack 布局,但實(shí)際上 Tkinter 后來引入的 Grid 布局不僅簡單易用,而且管理組件也非常方便。

10年積累的網(wǎng)站設(shè)計(jì)制作、網(wǎng)站制作經(jīng)驗(yàn),可以快速應(yīng)對客戶對網(wǎng)站的新想法和需求。提供各種問題對應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識你,你也不認(rèn)識我。但先網(wǎng)站制作后付款的網(wǎng)站建設(shè)流程,更有冷水江免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。
Grid 把組件空間分解成一個網(wǎng)格進(jìn)行維護(hù),即按照行、列的方式排列組件,組件位置由其所在的行號和列號決定,行號相同而列號不同的幾個組件會被依次上下排列,列號相同而行號不同的幾個組件會被依次左右排列。
使用 Grid 布局的過程就是為各個組件指定行號和列號的過程,不需要為每個網(wǎng)格都指定大小,Grid 布局會自動為它們設(shè)置合適的大小。
程序調(diào)用組件的 grid() 方法就進(jìn)行 Grid 布局,在調(diào)用 grid() 方法時可傳入多個選項(xiàng),該方法支持的 ipadx、ipady、padx、pady 與 pack() 方法的這些選項(xiàng)相同。而 grid() 方法額外增加了如下選項(xiàng):
column:指定將組件放入哪列。第一列的索引為 0。
columnspan:指定組件橫跨多少列。
row:指定組件放入哪行。第一行的索引為 0
rowspan:指定組件橫跨多少行。
sticky:有點(diǎn)類似于 pack() 方法的 anchor 選項(xiàng),同樣支持 N(北,代表上)、E(東,代表右)、S(南,代表下)、W(西,代表左)、NW(西北,代表左上)、NE(東北,代表右上)、SW(西南,代表左下)、SE(東南,代表右下)、CENTER(中,默認(rèn)值)這些值。
下面程序使用 Grid 布局來實(shí)現(xiàn)一個計(jì)算器界面:
# Python 2.x使用這行
#from Tkinter import *
# Python 3.x使用這行
from tkinter import *
class App:
def __init__(self, master):
self.master = master
self.initWidgets()
def initWidgets(self):
# 創(chuàng)建一個輸入組件
e = Entry(relief=SUNKEN, font=('Courier New', 24), width=25)
# 對該輸入組件使用Pack布局,放在容器頂部
e.pack(side=TOP, pady=10)
p = Frame(self.master)
p.pack(side=TOP)
# 定義字符串的元組
names = ("0" , "1" , "2" , "3"
, "4" , "5" , "6" , "7" , "8" , "9"
, "+" , "-" , "*" , "/" , ".", "=")
# 遍歷字符串元組
for i in range(len(names)):
# 創(chuàng)建Button,將Button放入p組件中
b = Button(p, text=names[i], font=('Verdana', 20), width=6)
b.grid(row=i // 4, column=i % 4)
root = Tk()
root.title("Grid布局")
App(root)
root.mainloop()上面程序?qū)嶋H上使用了兩個布局管理器進(jìn)行嵌套,先使用 Pack 布局管理兩個組件,分貝是 Entry(輸入組件)和 Frame(容器),這兩個組件就會按照從上到下的方式排列。
接下來程序使用 Grid 布局管理 Frame 容器中的 16 個按鈕,分別將 16 個按鈕放入不同的行、不同的列。運(yùn)行上面程序,可以看到如下圖所示的界面。
當(dāng)前標(biāo)題:創(chuàng)新互聯(lián)Python教程:PythonTkinterGrid布局管理器用法
路徑分享:http://fisionsoft.com.cn/article/djsoees.html


咨詢
建站咨詢
