5. 框架控件 Frame
什么是框架控件?
框架控件(Frame) 是 Tkinter 中的一个容器控件,用于组织和分组其他控件(如按钮、标签、输入框等)。它类似于 主窗口,内部可以有自己的布局和控件放置方式,一个主窗口可以有多个Frame,这样可以实现更复杂的布局方式。
作用
- 结构化布局:将相关控件放在同一个 Frame 中,便于管理。
- 复杂界面设计:嵌套多个 Frame 实现更灵活的布局。
- 样式控制:统一设置背景色、边框等。
Frame 控件常用属性:
属性
说明
类型
bg
背景色
str
height
高
int
width
宽
int
bd或borderwidth
边框宽度(默认 0,无边框)
int
relief
边框样式("flat"、"raised"、"sunken"、"solid"、"ridge"、"groove")
str
示例
import tkinter
root = tkinter.Tk()
root.title("Frame 示例")
# 创建一个 Frame,并放置到 root 窗口
frame = tkinter.Frame(root, bg="blue", bd=2, relief="solid")
frame.pack(padx=10, pady=10, fill=tkinter.BOTH, expand=1) # 使用 pack 布局
root.mainloop()
效果如图
示例2
import tkinter
from tkinter.constants import *
root = tkinter.Tk()
frame = tkinter.Frame(root, relief=RIDGE, borderwidth=2)
frame.pack(fill=BOTH,expand=1)
label = tkinter.Label(frame, text="Hello, World")
label.pack(fill=X, expand=1)
button = tkinter.Button(frame,text="Exit",command=root.destroy)
button.pack(side=BOTTOM)
root.mainloop()
效果如图
示例3
import tkinter
root = tkinter.Tk()
root.title("嵌套 Frame 示例")
# 外层 Frame(顶部导航栏)
top_frame = tkinter.Frame(root, bg="gray", height=50)
top_frame.pack(fill=tkinter.X) # 水平填充
# 内层 Frame(内容区域)
content_frame = tkinter.Frame(root, bg="lightyellow")
content_frame.pack(fill=tkinter.BOTH, expand=True)
# 在 content_frame 中添加控件
label = tkinter.Label(content_frame, text="主要内容", bg="lightyellow")
label.pack(pady=50)
root.mainloop()
效果如图