Python Tkinter是Python自帶的GUI庫,可以創建界面交互式的窗口應用程序,其中Pack是一種布局方式,可以讓控件按照指定的方向依據權重和填充佔據空間。下面將從Pack布局的特點和使用方法方面做詳細的闡述。
一、Pack布局的特點
Pack布局是Tkinter中比較基本的布局方式,相比其他布局方式,Pack布局具有以下特點:
1、簡單易用:Pack布局方式只需要指定控件所在方向和權重值即可,很容易實現布局效果。
2、動態性強:Pack布局方式自動設置控件大小和位置,不需要手動計算控件大小和位置。
3、自適應性好:Pack布局方式根據窗口大小的改變,可以自適應控件的位置和大小,更好地適應不同分辨率的屏幕。
二、Pack布局的使用方法
使用Pack布局可以讓控件按照指定方向隨着窗口的大小變化而自適應調整大小和位置,以下是Pack布局使用方法的講解:
1、方向控制
使用Pack布局控制方向可以使用side參數,默認是TOP,即上下排列,還可以使用LEFT或者RIGHT控制方向為左右排列,例如下面的代碼:
from tkinter import * win = Tk() topframe=Frame(win) topframe.pack(side=TOP) leftframe=Frame(win) leftframe.pack(side=LEFT) rightframe=Frame(win) rightframe.pack(side=RIGHT) bottomframe=Frame(win) bottomframe.pack(side=BOTTOM) win.mainloop()
2、權重控制
使用Pack布局可以指定控件的權重,例如想讓某個控件佔據更多的空間,可以給它設置一個較大的權重值。
from tkinter import * win = Tk() topframe=Frame(win) topframe.pack(side=TOP) leftframe=Frame(win) leftframe.pack(side=LEFT) rightframe=Frame(win) rightframe.pack(side=RIGHT) bottomframe=Frame(win) bottomframe.pack(side=BOTTOM) button1=Button(leftframe, text="Button 1", fg="red") button2=Button(rightframe, text="Button 2", fg="blue") button3=Button(bottomframe, text="Button 3", fg="green") button1.pack(side=LEFT, padx=20, pady=20, fill=X, expand=YES, ipady=10) button2.pack(side=LEFT, padx=20, pady=20, fill=X, expand=YES, ipady=10) button3.pack(side=LEFT, padx=20, pady=20) win.mainloop()
3、填充控制
使用Pack布局可以指定控件的填充方式,例如想讓某個控件佔據更多的空間,可以使用fill參數。fill參數的值可以是X、Y、BOTH或者NONE:
- X:水平方向填充
- Y:豎直方向填充
- BOTH:水平和豎直方向填充
- NONE:不填充
例如下面的代碼讓Button 1和Button 2佔據左邊的Frame,按鈕高度佔據10個像素。
from tkinter import * win = Tk() topframe=Frame(win) topframe.pack(side=TOP) leftframe=Frame(win) leftframe.pack(side=LEFT) rightframe=Frame(win) rightframe.pack(side=RIGHT) bottomframe=Frame(win) bottomframe.pack(side=BOTTOM) button1=Button(leftframe, text="Button 1", fg="red") button1.pack(side=LEFT, padx=20, pady=20, fill=X, expand=YES, ipady=10) button2=Button(leftframe, text="Button 2", fg="blue") button2.pack(side=LEFT, padx=20, pady=20, fill=X, expand=YES, ipady=10) button3=Button(bottomframe, text="Button 3", fg="green") button3.pack(side=LEFT, padx=20, pady=20) win.mainloop()
三、Pack布局綜合實例
下面是一個Pack布局的綜合實例,通過這個例子可以更深入的了解到Pack布局的使用方法和效果。
from tkinter import * win = Tk() topframe=Frame(win) topframe.pack(side=TOP) leftframe=Frame(win) leftframe.pack(side=LEFT) rightframe=Frame(win) rightframe.pack(side=RIGHT) bottomframe=Frame(win) bottomframe.pack(side=BOTTOM) button1=Button(leftframe, text="Button 1", fg="red") button1.pack(side=LEFT, padx=20, pady=20, fill=X, expand=YES, ipady=10) button2=Button(leftframe, text="Button 2", fg="blue") button2.pack(side=LEFT, padx=20, pady=20, fill=X, expand=YES, ipady=10) button3=Button(rightframe, text="Button 3", fg="green") button3.pack(side=LEFT, padx=20, pady=20, fill=X, expand=YES, ipady=10) button4=Button(topframe, text="Button 4", fg="purple") button4.pack(side=LEFT, padx=20, pady=20, fill=Y, expand=YES, ipady=10) button5=Button(topframe, text="Button 5", fg="black") button5.pack(side=LEFT, padx=20, pady=20, fill=Y, expand=YES, ipady=10) button6=Button(bottomframe, text="Button 6", fg="gray") button6.pack(side=LEFT, padx=20, pady=20, fill=X, expand=YES, ipady=10) win.mainloop()
運行上面的代碼會得到一個如下的界面:
結論
通過本文的介紹,我們可以得知,Tkinter Pack布局是Tkinter中最基本的布局方式之一,具有簡單易用、動態性強、自適應性好等特點,可以通過控制方向、權重和填充等參數實現豐富的界面效果。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/249133.html