Frame 就是屏幕上的一块矩形区域,多是用来作为容器(container)来布局窗体
创建Frame
代码:
import tkinter as tk
root = tk.Tk()
# 以不同的颜色区别各个frame
for i in ['red', 'blue', 'yellow', 'green', 'white', 'black']:
# 注意这个创建frame的方法与其它创建控件的方法不同,第一个参数不是root
tk.Frame(height=20, width=400, bg=i).pack()
root.mainloop()
效果:
添加不同颜色的 Frame,大小均为20*400
向 Frame 中添加 Widget
代码:
import tkinter as tk
root = tk.Tk()
fm = []
# 以不同的颜色区别各个frame
for i in ['red', 'blue', 'yellow', 'green', 'white', 'black']:
# 注意这个创建frame的方法与其它创建控件的方法不同,第一个参数不是root
fm.append(tk.Frame(height=20, width=400, bg=i))
# 向下面的Frame中添加一个Label
tk.Label(fm[1], text='hello world').pack()
for i in fm:
i.pack()
root.mainloop()
结果:
Label 被添加到上面的 Frame 中了,而不是 root 默认的最上方
Tk8.4以后 Frame 又添加了一类 LabelFrame,添加了 Title 的支持
代码:
import tkinter as tk
root = tk.Tk()
# 以不同的颜色区别各个frame
for i in ['red', 'blue', 'yellow', 'green', 'white', 'black']:
# 可以使用 text 属性指定 Frame 的 title
tk.LabelFrame(height=50, width=300, text=i,bg=i).pack()
root.mainloop()
效果: