注意:这是一个q / a问题,我在答案中回答我自己的问题,仅仅为了他人的利益(或者那些知道比我提供的更好的方式的人可以提供它)。
在以下示例中,如何使底部Text
窗口小部件填满最大化屏幕时显示的所有空白区域(因此顶部Text
窗口小部件直接位于顶部最大化)?我不知道这个额外填充的原因。我可以通过为第二个Text
窗口小部件添加额外的行来填充和使用rowspan
来摆脱一些填充,但仍然有一些剩余。我不希望顶部Text
窗口小部件的高度大于1。
from tkinter import *
tk=Tk()
tk.columnconfigure(0, weight=1)
tk.rowconfigure(0, weight=1)
tk.rowconfigure(1, weight=1)
f=Frame(tk)
f2=Frame(tk)
f.grid(row=0, column=0, sticky=E+W)
f2.grid(row=1, column=0, sticky=N+S+E+W)
t=Text(f, height=1)
t2=Text(f2)
l=Label(f, text="label")
b=Button(f, text="button")
l.pack(side=LEFT)
t.pack(side=LEFT, fill=X, expand=True)
b.pack(side=LEFT)
t2.pack(fill=BOTH, expand=True)
tk.mainloop()
答案 0 :(得分:2)
最简单的解决方案是从第0行中删除权重。当你给出一行(或列......)权重时,你告诉Tkinter它可以用来分配额外空间的比例。如果两列具有相同的重量,则它们获得相同比例的额外空间。因此,如果两行的权重均为1,则每个行都会获得相等比例的额外空间。
通过仅为文本窗口小部件行赋予权重1,只有在窗口调整大小时它才会增长。
在大多数情况下似乎最有效的方法是只有一行和一列具有非零空间 - 通常是文本小部件或画布。
答案 1 :(得分:0)
只需将行weight
的{{1}}设置为1
这样的大号。然后它会适当地填充额外的空间(虽然因为按钮的高度与100
小部件的高度不同,所以你仍然会有一点间隙)。我不知道这是否是最合适的方式,但它确实有效。
下面:
Text