我正在尝试使用Python2.6.7和Tkinter进行拉伸。我希望下面的代码将第一个按钮拉伸到第二个按钮的宽度,但这两个按钮的宽度都只有适合其文本所需的宽度。
#!/usr/bin/python
from Tkinter import *
win = Frame()
win.grid(sticky=N+S+E+W)
inner_a = Frame(win)
inner_a.grid(row=0, column=0, sticky=N+E+W)
inner_b = Frame(win)
inner_b.grid(row=1, column=0, sticky=S+E+W)
Button(inner_a, text='1').grid(row=0, column=0, sticky=E+W)
Button(inner_b, text='Some long text').grid(row=0, column=0, sticky=E+W)
win.mainloop()
据我所知,win
中的单个列将扩展到它所包含的最大对象的宽度,即inner_b
的宽度,然后inner_a
的宽度,然后第一个按钮的位置将是第二个按钮的位置。
实际上,发生的情况如下:第一个按钮的宽度只够包含“1”,而没有第二个按钮那么宽。
我需要做什么才能得到第一个按钮来扩展第二个按钮的大小?
如果希望小部件在网格中排列,首先要确保它们具有相同的父级。如果所有小部件都是相同大小的,或者您只使用一个列,那么这并不是绝对必要的。
你需要做的另一件事是给你的专栏一个权重。代码中发生的情况是小部件正在展开以填充列,但列没有展开以填充主控形状。如果你给它1的重量,它会。你应该做一些类似于
inner_a.columnconfigure(1, weight=1)
的事情,然后对inner_b
做同样的事情。相关问题 更多 >
编程相关推荐