Tkinter的.grid()不对齐,我快崩溃了

0 投票
1 回答
1220 浏览
提问于 2025-04-18 14:03

我最近在做一个程序,这个程序需要用户输入一些信息,然后根据这些信息生成一个表格,让用户可以编辑需要修改的内容。我用的是Tkinter,现在已经没时间换别的了。我有三个框架,第一个是Pmw滚动框架,第二个是左侧框架,放在主框架里面,第三个是右侧框架。在左边我放了一些标签,右边则有几个下拉菜单和输入框。问题是,不管我怎么尝试,这些元素都无法对齐。我已经为此纠结了很久。这里是相关的代码:http://pastebin.com/S7yMmacG

你可以忽略里面的所有函数,它们是正常工作的,和对齐问题没有关系,抱歉如果看起来有点乱。至于实际发生了什么,这里有一张问题的截图

https://i.stack.imgur.com/gpeuD.png

我尝试过使用.pack()和.place(),但都没有效果。如果有人能帮我,那真是太好了,我已经纠结了很久,真的不知道该怎么办。谢谢!

1 个回答

1

它们没有对齐是因为你把它们都更新到了同一行。

在网格布局中,我们使用 .grid(row=x,column=x) 来设置位置。

比如说,要让 description 标签和输入框对齐,它们应该在同一行,但在不同的列。

把描述标签放在 row=0 和 column=0,而它的输入框放在 row=0 和 column=1

而且它们都应该在同一个框架里,尽量不要为了这个目的使用不同的框架。

如果你想让某一列的宽度固定,可以使用 grid_configure。你可以通过 myframe.grid_configure(column=0,minsize=150) 来改变它,这样 column 0 的宽度在整个框架中都会保持不变。

你可以从 这个链接 学到更多。

撰写回答