Python Tkinter模塊 Grid(grid)布局管理器參數詳解


  在使用Tkinter模塊編寫圖像界面時,經常用到pack()和grid()進行布局管理,pack()參數較少,使用方便,是最簡單的布局,但是當控件數量較多時,可能需要使用grid()進行布局(不要在同一個窗口中同時使用grid()和pack()!!)。

  grid使用方法和主要參數:

  1. row=x,column=y:將控件放在x行,y列的位置。注意:
  • 如果不指定參數,則默認從0開始。
  • 此處的行號和列號並不是像在坐標軸上一樣嚴格,只是代表一個上下左右的關系,如:

  Label(master, text="First").grid(row=0)
  Label(master, text="Second").grid(row=1)

和(在行號“1”沒有出現的情況下):

  Label(master, text="First").grid(row=0)
  Label(master, text="Second").grid(row=2)

效果都是一樣的:

          

  2.columnspan: 設置單元格橫向跨越的列數,即控件占據的列數(寬度); rowspan:設置單元格縱向跨越的行數,即控件占據的行數(高度)。

  3.ipadx:設置控件里面水平方向空白區域大小; ipady:設置控件里面垂直方向空白區域大小;

   padx:設置控件周圍水平方向空白區域保留大小; pady:設置控件周圍垂直方向空白區域保留大小;

  4.sticky:默認的控件在窗口中的對齊方式是居中。可以使用sticky選項去指定對齊方式,可以選擇的值有:N/S/E/W,分別代表上對齊/下對齊/左對齊/右對齊,可以單獨使用N/S/E/W,也可以上下和左右組合使用,達到不同的對齊效果,如:

  

from tkinter import * master = Tk() master.geometry('300x130') e1 = Button(master,text='First',height=2,width=7,fg='red') e2 = Button(master,text='Second',height=3,width=13,fg='blue') e1.grid(row=0, column=0) e2.grid(row=0, column=1) mainloop()
View Code

窗口內有兩個按鈕,寬度高度均不相同,可以看到它們的對齊方式是居中顯示: 

           

如果想讓它們在同一行上下對齊,可以設置sticky=N+S,意為頂端和低端都要對齊:

  

from tkinter import * master = Tk() master.geometry('300x130') e1 = Button(master,text='First',height=2,width=7,fg='red') e2 = Button(master,text='Second',height=3,width=13,fg='blue') e1.grid(row=0, column=0,sticky=N+S) e2.grid(row=0, column=1,sticky=N+S) mainloop()
View Code

       

  總結如下:

  sticky=N/S/E//W:頂端對齊/底端對齊/右對齊/左對齊

  sticky=N+S:拉伸高度,使其在水平方向上頂端和底端都對齊

  sticky=E+W,拉伸寬度,使其在垂直方向上左邊界和右邊界都對齊

  sticky=N+S+E:拉伸高度,使其在水平方向上對齊,並將控件放在右邊(當兩個控件放在同一行同一列時效果明顯)

   .......

  還有諸如此類的組合方式根據需要調整。

  在Tkinter模塊中,各種控件的大小計量單位並不盡相同,可能需要反復調整才能達到最佳效果。

  注:以上程序代碼適用於python3.4.3版本,python2.x可能需要稍作改變。

  

 

 

 

 

 

 

        

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM