Tkinter的.grid()不对齐,我快崩溃了
我最近在做一个程序,这个程序需要用户输入一些信息,然后根据这些信息生成一个表格,让用户可以编辑需要修改的内容。我用的是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
的宽度在整个框架中都会保持不变。
你可以从 这个链接 学到更多。