tkinter中的grid最好的總結

Tkinter參考中最推薦使用的一個佈局器。實現機制是將Widget邏輯上分割成表格,在指定的位置放置想要的Widget就可以了。

使用grid顯示窗體的主要流程:

  self.thing = constructor(parent,……)#constructor可以爲Button,Frame等

  self.thing.grid(……)

 

    grid方法介紹:

        w.grid(option=value,……)

        向窗體註冊並顯示控件

    主要參數:

    column: 控件放置位置的列數,從0開始算起,默認爲0;

    clomnspan: 設置單元格橫向跨越的列數,例如:w.grid(row=0, column = 2, columnspan=3);

    in_:重新設置w爲窗體w2的子窗體,方法:in_=w2.w2必須是w的父窗體子類;

    ipadx:設置控件裏面x方向空白區域大小;

    ipady:設置控件裏面y方向空白區域大小;

    padx:設置控件周圍x方向空白區域保留大小;

    pady:設置控件周圍y方向空白區域保留大小;

    row:控制放置的行數,從0開始算起,默認爲上一個位佔領的行數

    rowspan:設置單元格縱向跨越的列數,例如:w.grid(row=0, column = 2,rowspan=4, columnspan=5);

    sticky:設置對齊方式

 

如果未設置對齊方式,默認爲將控件放置在窗體中間。對齊方式主要有如下幾種:

1) 通過使用sticky=NE(右上角),SE(右下角),SW(左下角),NW(左上角)來設置控件位置

2) 通過使用sticky=N(上中),E(右中),S(底中),W(左中)來設置控件放置中間位置

3) sticky=N+S,向垂直方向拉昇而保持水平中間對齊

4) sticky=E+W,向水平方向拉昇而保持垂直中間對齊

5)   sticky=N+E+S+W,以水平方向和垂直方向拉昇的方式填充單元格


  1. #!/usr/bin/python     
  2. #Filename: button.py     
  3. # -*- coding: utf-8 -*-  
  4.   
  5. from Tkinter import *     
  6.     
  7. class Application(Frame):     
  8.     def say_hi(self):     
  9.         print "hi there, everyone!"    
  10.     def say_bitmap(self):     
  11.         print "bitmap show"    
  12.              
  13.     def createWidgets(self):     
  14.         self.hi_there = Button(self)  
  15.         self.hi_there["text"] = "Hello",  #設置按鈕上的顯示字符     
  16.         self.hi_there["command"] = self.say_hi  #設置按鈕按下時的回調函數     
  17.         self.hi_there["bg"] = "red"           #設置背景顏色     
  18.         self.hi_there["fg"] = "yellow"        #設置顯示的字體顏色     
  19.         self.hi_there["activebackground"] = "green"   #設置按鈕被按下時的背景顏色     
  20.         self.hi_there["activeforeground"] = "black"   #設置按鈕被按下時的字體顏色     
  21.         self.hi_there["bd"] = "5"              #設置按鈕邊框像素,默認爲2個像素     
  22.         self.hi_there["cursor"] = "hand1"      #設置鼠標放置在按鈕上的形狀     
  23.         self.hi_there["padx"] = 100;           #設置按鈕橫向的空白長度     
  24.         self.hi_there["pady"] = 100;           #設置按鈕縱向的空白長度     
  25.         self.hi_there["underline"] = 1;        #設置顯示字體的下劃線在哪個字符下面     
  26.              
  27.         self.hi_there.grid(row = 0, column = 0)     
  28.     
  29.         self.Bitmap = Button(self)     
  30.         self.Bitmap["text"] = "Bitmap"    
  31.         self.Bitmap["command"] =  self.say_bitmap     
  32.         self.Bitmap["bitmap"] = "question"             
  33.         self.Bitmap.grid(row=1, column=0)     
  34.              
  35.         self.QUIT = Button(self)     
  36.         self.QUIT["text"] = "QUIT"    
  37.         self.QUIT["fg"]   = "red"    
  38.         self.QUIT["command"] =  self.quit     
  39.         self.QUIT.grid(row=2, column=0)     
  40.     
  41.     def __init__(self, master=None):     
  42.         Frame.__init__(self, master)     
  43.         self.pack()     
  44.         self.createWidgets()     
  45.     
  46. root = Tk()     
  47. app = Application(master=root)     
  48. app.mainloop()     
  49. root.destroy() 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章