Tkinter之Frame


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()
 
 
 


免責聲明!

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



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