Python 3 – Tkinter 填充样式
在 Tkinter 中,我们可以使用 fill 属性来设置组件在容器中的填充方式,该属性有四个可选值:NONE、X、Y、BOTH。
- NONE:组件不填充;
- X:横向填充;
- Y:纵向填充;
- BOTH:同时横向与纵向填充。
接下来我们看一下具体的实现方法。
Tkinter 填充样式示例代码
import tkinter as tk
root = tk.Tk()
# 容器
frame1 = tk.Frame(root, bg='blue')
frame1.pack(fill=tk.BOTH, expand=True)
# 组件
label1 = tk.Label(frame1, text='Label 1', bg='yellow')
label1.pack(pady=10)
label2 = tk.Label(frame1, text='Label 2', bg='red')
label2.pack(side=tk.LEFT, padx=10, pady=10)
label3 = tk.Label(frame1, text='Label 3', bg='green')
label3.pack(side=tk.RIGHT, padx=10, pady=10)
root.mainloop()
在上面的示例代码中,我们使用了 Frame 和 Label 这两个组件来说明填充样式的使用方法。具体地,
- Frame 是一个容器,我们使用 fill 和 expand 属性来设置填充样式;
- Label 是一个文本组件,我们使用 padx 和 pady 属性来设置组件在容器中的填充空间。
Frame 组件的 fill 属性默认值是 NONE,表示不填充。当 fill 值为 X 时,横向填充;当 fill 值为 Y 时,纵向填充;当 fill 值为 BOTH 时,同时横向与纵向填充。expand 属性默认值是 False,表示不扩展。当 expand 值为 True 时,扩展容器使其获得额外的空间。
Label 组件的 padx 和 pady 属性默认值是 0,表示不填充。当有数值时,表示在组件的左右(padx)或上下(pady)两个方向填充空间。
在上述代码中,我们使用了 side 属性来设置 Label 组件在容器中的位置,默认值为 TOP。当值为 BOTTOM 时,位于容器底部;当值为 LEFT 时,位于容器左边;当值为 RIGHT 时,位于容器右边。这里我们使用了 LEFT 和 RIGHT 来分别设置 Label 2 和 Label 3。我们还可以使用 anchor 属性来设置组件的对齐方式,默认为 CENTER。
结论
使用 fill 和 expand 属性可以让容器自适应窗口大小,使组件获得更多空间;使用 padx 和 pady 属性可以设置组件的填充空间。在编写 Tkinter 界面时,填充样式的设置非常常见,掌握好这些属性的使用方法可以使界面更加美观。