我知道这是个太琐碎的问题,但我是个新手,刚刚开始使用 tkinter
模块。其实我到处查了一下,都找不到满意的答案。我找到了以下内容。
fill
选项:它决定了是占用更多的空间还是保持 "自己 "的尺寸。
expand
选项:它处理的是父部件的扩展。
该 问题 是这两个声音或多或少 一样. 我甚至尝试了几个例子,在4个值之间切换。fill
和2个值 expand
但在2、3个案例中收到了或多或少相同的输出,因此我有这个疑问。任何帮助将被感激在这方面。先谢谢你
来自 疗效宝:
负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 填充 选项告诉管理员,小组件要填满分配给它的整个空间。该值控制如何填充空间。BOTH 意味着小组件应在水平和垂直方向上展开。X 意味着它只能水平展开,而 Y 意味着它应该只在垂直方向扩张。
该 扩大 选项告诉管理员为小组件框分配额外空间。如果父小组件的大小超过了容纳所有打包小组件所需的大小,则任何超出的空间将被分配给所有具有以下功能的小组件 扩大 选项设置为非零值。
所以 fill
告诉小组件在指定的方向上成长到有多少可用空间。expand
告诉主站将未分配给任何小组件的任何空间,并将其分配给所有具有非零的 expand
值。
在运行这个例子时,两者的区别就很明显了。
import Tkinter as tk
root = tk.Tk()
root.geometry('200x200+200+200')
tk.Label(root, text='Label', bg='green').pack(expand=1, fill=tk.Y)
tk.Label(root, text='Label2', bg='red').pack(fill=tk.BOTH)
root.mainloop()
你可以看到标签上的 expand=1
被分配了尽可能多的可用空间,但只在指定的方向上占用,Y.标签上有 fill=tk.BOTH
向两个方向扩展,但可用空间较小。
我已经试错了;-)。这里是一个概述。基本上是这样的。expand=True
否决 side='...'
import tkinter as tk
root = tk.Tk()
root.geometry()
for e, expand in enumerate([False, True]):
for f, fill in enumerate([None, tk.X, tk.Y, tk.BOTH]):
for s, side in enumerate([tk.TOP, tk.LEFT, tk.BOTTOM, tk.RIGHT]):
position = '+{}+{}'.format(s * 205 + 100 + e * 820, f * 235 + 100)
win = tk.Toplevel(root)
win.geometry('200x200'+position)
text = str("side='{}'\nfill='{}'\nexpand={}".format(side, fill, str(expand)))
tk.Label(win, text=text, bg=['#FF5555', '#55FF55'][e]).pack(side=side, fill=fill, expand=expand)
root.mainloop()