1. 程式人生 > 實用技巧 >Python20-05_頁面佈局----grid佈局管理器詳解

Python20-05_頁面佈局----grid佈局管理器詳解

grid佈局管理器詳解

tkinter提供了三種管理器, pack, grid, place. 幫助我們組織, 管理在父元件中子元件的佈局方式

grid佈局管理器

grid表格佈局, 採用表格結構組織元件, 子元件的位置由行和列單元格確定, 並且可以跨行和跨列, 從而實現複雜的佈局

grid方法提供的選項

選項 說明 取值範圍
column 單元格的列號 從零開始的正整數
columnspan 跨列,跨越的列數 正整數
row 單元格的列號 從零開始的正整數
rowspan 跨行,跨越的行數 正整數
ipadx, ipady 設定子元件之間的間隔, x或y方向, 預設單位為畫素 非負浮點數,預設為0.0
padx, pady 與之並列的元件之間的間隔, x或y方向, 預設單位為畫素 非負浮點數,預設為0.0
sticky 元件緊貼所在單元格的某一角,對應東西南北中以及四個角 N W S E NW NE SE WE
 1 # coding:utf-8
 2 from tkinter import *
 3 from tkinter import messagebox
 4 import random
 5 
 6 
 7
class Application(Frame): 8 """一個經典的GUI程式類寫法""" 9 def __init__(self, master=None): 10 super().__init__(master) # super代表的是父類的定義,而不是父類的物件 11 self.master = master 12 self.pack() 13 self.createWidget() 14 15 def createWidget(self): 16 self.label01 = Label(self, text='
使用者名稱') 17 self.label01.grid(row=0, column=0) 18 self.entry01 = Entry(self) 19 self.entry01.grid(row=0, column=1) 20 Label(self, text='使用者名稱為手機號').grid(row=0, column=2) 21 Label(self, text='密碼').grid(row=1, column=0) 22 Entry(self, show='*').grid(row=1, column=1) 23 Button(self, text='登入').grid(row=2, column=1, sticky=EW) 24 Button(self, text='取消').grid(row=2, column=2, sticky=E) 25 26 27 if __name__ == "__main__": 28 root = Tk() 29 root.geometry("400x350+200+300") 30 root.title('canvas') 31 app = Application(master=root) 32 root.mainloop()