Python20-05_頁面佈局----grid佈局管理器詳解
阿新 • • 發佈:2020-09-21
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 7class 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()