我在使用 Tkinter grid() 管理器时遇到了一些麻烦。它的行间距太远了。我有两个要放置的条目小部件,我需要一个几乎直接位于另一个下方。当我将它们放在同一行和同一列上,但更改 pady 选项时,它会将它们直接放在彼此的顶部。我知道必须有办法解决这个问题,以前从未遇到过这个问题。
我在 Windows XP 上使用 Python 2.6。
我在使用 Tkinter grid() 管理器时遇到了一些麻烦。它的行间距太远了。我有两个要放置的条目小部件,我需要一个几乎直接位于另一个下方。当我将它们放在同一行和同一列上,但更改 pady 选项时,它会将它们直接放在彼此的顶部。我知道必须有办法解决这个问题,以前从未遇到过这个问题。
我在 Windows XP 上使用 Python 2.6。
这些是仅有的 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()
不要将它们放在同一行和同一列;将上面的放在一行中,将下面的放在 row+1 中,两者都在同一列中。这就是诀窍。
请注意,网格管理器不需要让所有行和列都填充小部件;它忽略空行和列。