Frame俗稱框架,用來承載放置其餘GUI元素,能夠理解爲一個容器。
它能將 Windows 分紅不一樣的區,而後存放不一樣的部件. 同時一個Frame 也能再分紅多個子Frame。
在有不一樣的界面邏輯層級和功能區域劃分時能夠用到,讓交互界面邏輯更加清晰。
示例1:體會Frame指定區域的做用
from Tkinter import *
root = Tk()
fm = []
#以不一樣的顏色區別各個frame
for color in ['red','blue']:
#注意這個建立Frame的方法與其它建立控件的方法不一樣,第一個參數不是root
fm.append(Frame(height = 20,width = 100,bg = color))
fm[0].pack()
fm[1].pack()
def Call():
#Label被添加到指定的Frame中了,而不是root默認的最上方
Label(fm[1],text = 'Hello label').pack()
Button(root,text='red',width=5,command=Call).pack(side='left')
root.mainloop()
注意:
一旦Frame上面放置了部件,那麼Frame的背景色就會消去,變成沒法肉眼辨別的底層容器。
示例2:體會父子Frame劃分區域的做用
import Tkinter as tk
window = tk.Tk()
window.title('My Window')
window.geometry('500x300')
#建立主框架frame
frame = tk.Frame(window)
frame.pack()
#建立第二層框架frame,放置在主框架frame上。第二層frame有2個,一個放左,一個放右
frame_l = tk.Frame(frame)
frame_r = tk.Frame(frame)
frame_l.pack(side='left')
frame_r.pack(side='right')
#建立多個標籤,分別放置在第二層的2個frame上
tk.Label(frame_l, text='物料表格', bg='green').pack()
tk.Label(frame_l, text='入庫表格', bg='green').pack()
tk.Label(frame_r, text='物料屬性', bg='yellow').pack()
tk.Label(frame_r, text='入庫屬性', bg='yellow').pack()
window.mainloop()