Tkinter grid() 管理器

发布于 2024-09-08 18:39:32 字数 186 浏览 5 评论 0原文

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

我在 Windows XP 上使用 Python 2.6。

I am having a bit of trouble with the Tkinter grid() manager. It is spacing the rows too far apart. I have two entry widgets to place, and I need one almost directly under the other. When I place them both on the same row and column, but change the pady option, it places them directly on top of each other. I know there has to be a way to fix this, never had this problem before.

I am using Python 2.6 on Windows XP.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

箜明 2024-09-15 18:39:32

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

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

Don't place them in the same row and column; place the upper in a row, and the lower in row+1, both in the same column. That does the trick.

Note that the grid manager does not need to have all rows and columns filled with widgets; it ignores empty rows and columns.

热情消退 2024-09-15 18:39:32

这是仅有的 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()

Are these the only 2 widgets? Or is there another widget,in another column, that ismore than one row in height? If so, it should add to it the "rowspan" attribute.

If that is not the case, I suggesttaht for this cell alone (aply to it "row3span 2), you add a Tkinter.Frame widget, and within this Frame, you simply add your desired widgets with the "pack" manager.

So, instead of:

entr1.grid(my_window, row=1, column=1)
entr2.grid(my_window, row=1, column=1)

you do:

frame = Tkinter.Frame(my_window)
entr1 = Tkinter.<Whatever-widget>(Frame, ...)
entr1.pack()
entr2 = Tkinter.<Whatever-widget>(Frame, ...)
entr2.pack()
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文