Tkinter grid()经理

时间:2010-07-10 15:23:43

标签: python tkinter grid tkinter-entry

我在使用Tkinter grid()管理器时遇到了一些麻烦。它将行间隔得太远。我有两个入口小部件,我需要一个几乎直接在另一个之下。当我将它们放在同一行和列上,但更改pady选项时,它会将它们直接放在彼此的顶部。我知道必须有办法解决这个问题,以前从未遇到过这个问题。

我在Windows XP上使用Python 2.6。

2 个答案:

答案 0 :(得分:2)

这些只是两个小部件吗?或者是否有另一个小部件,在另一列中,高度超过一行?如果是这样,它应该添加“rowspan”属性。

如果不是这种情况,我建议单独使用此单元格(适用于它“row3span 2”),添加一个Tkinter.Frame小部件,在此框架中,您只需使用“pack”管理器添加所需的小部件

所以,而不是:

entr1.grid(my_window, row=1, column=1)
entr2.grid(my_window, row=1, column=1)
你这样做:

frame = Tkinter.Frame(my_window)
entr1 = Tkinter.<Whatever-widget>(Frame, ...)
entr1.pack()
entr2 = Tkinter.<Whatever-widget>(Frame, ...)
entr2.pack()

答案 1 :(得分:2)

不要将它们放在同一行和列中;将上部放在一行中,将下部放在行+ 1中,两者都放在同一列中。这就是诀窍。

请注意,网格管理器不需要用窗口小部件填充所有行和列;它会忽略空行和列。