您好,登錄后才能下訂單哦!
Python如何使用 Tkinter Grid布局管理器?相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。
很多時候 Tkinter 界面編程都會優先考慮使用 Pack 布局,但實際上 Tkinter 后來引入的 Grid 布局不僅簡單易用,而且管理組件也非常方便。
Grid 把組件空間分解成一個網格進行維護,即按照行、列的方式排列組件,組件位置由其所在的行號和列號決定,行號相同而列號不同的幾個組件會被依次上下排列,列號相同而行號不同的幾個組件會被依次左右排列。
使用 Grid 布局的過程就是為各個組件指定行號和列號的過程,不需要為每個網格都指定大小,Grid 布局會自動為它們設置合適的大小。
程序調用組件的 grid() 方法就進行 Grid 布局,在調用 grid() 方法時可傳入多個選項,該方法支持的 ipadx、ipady、padx、pady 與 pack() 方法的這些選項相同。而 grid() 方法額外增加了如下選項:
column:指定將組件放入哪列。第一列的索引為 0。
columnspan:指定組件橫跨多少列。
row:指定組件放入哪行。第一行的索引為 0
rowspan:指定組件橫跨多少行。
sticky:有點類似于 pack() 方法的 anchor 選項,同樣支持 N(北,代表上)、E(東,代表右)、S(南,代表下)、W(西,代表左)、NW(西北,代表左上)、NE(東北,代表右上)、SW(西南,代表左下)、SE(東南,代表右下)、CENTER(中,默認值)這些值。
下面程序使用 Grid 布局來實現一個計算器界面:
# 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): # 創建一個輸入組件 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)): # 創建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()
上面程序實際上使用了兩個布局管理器進行嵌套,先使用 Pack 布局管理兩個組件,分貝是 Entry(輸入組件)和 Frame(容器),這兩個組件就會按照從上到下的方式排列。
接下來程序使用 Grid 布局管理 Frame 容器中的 16 個按鈕,分別將 16 個按鈕放入不同的行、不同的列。運行上面程序,可以看到如下圖所示的界面。
看完上述內容,你們掌握Python如何使用 Tkinter Grid布局管理器的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。