Tkinter - 相同重量的列不等于宽度

时间:2017-08-02 17:14:57

标签: python-2.7 layout tkinter

我有一个有三列的Tkinter Toplevel窗口。所有三列都配置为具有相同的权重。内部列02是子框架,其中包含Listbox个窗口小部件。内部列1是一组按钮。出于某种原因,尽管我的3列具有相同的权重,但这些列表框“迫使”它们的列占用更多空间。

我写过,

window.columnconfigure(0,weight=1)
window.columnconfigure(1,weight=1)
window.columnconfigure(2,weight=1)

但我明白了:

Unequal Sizes

我还给出了1列3和5的权重,但它仍然很小。但是,完成此操作后,似乎02具有一些最小尺寸,然后在从真实宽度中减去之后,使用剩余宽度并除以重量。

这是一个错误吗?我需要对我的名单做些什么吗?我可能会忘记一些事情吗?

1 个答案:

答案 0 :(得分:5)

这不是一个错误。 weight确定如何分配额外空间。它没有对行或列的大小做出任何保证。

如果您希望列具有统一的宽度,请使用uniform选项并使它们都成为同一个统一组的一部分。

window.columnconfigure(0,weight=1, uniform='third')
window.columnconfigure(1,weight=1, uniform='third')
window.columnconfigure(2,weight=1, uniform='third')

注意:'third'没有什么特别之处 - 它可以是任何字符串,只要它对于所有三列都是相同的字符串。