Python 如何让tkinter中的列根据列中最小的小部件而不是跨越两列的小部件设置大小?

Python 如何让tkinter中的列根据列中最小的小部件而不是跨越两列的小部件设置大小?,python,tkinter,grid,columnspan,Python,Tkinter,Grid,Columnspan,我在Python中使用tkinter并使用grid,当我将两个小部件放在一行的不同列中,将一个小部件跨越另一行的两列时,列的宽度都设置为跨越两行的小部件宽度的一半。有没有办法让它适合这两个小部件的列 我希望这样做的原因是让左侧小部件填充跨越小部件的所有宽度,但右侧小部件占用的宽度除外,它应该是一个固定的宽度 代码如下所示: spanningboth.grid(row=0, column=0, columnspan = 2) infirstcol.grid(column=0, row=1, sti

我在Python中使用tkinter并使用grid,当我将两个小部件放在一行的不同列中,将一个小部件跨越另一行的两列时,列的宽度都设置为跨越两行的小部件宽度的一半。有没有办法让它适合这两个小部件的列

我希望这样做的原因是让左侧小部件填充跨越小部件的所有宽度,但右侧小部件占用的宽度除外,它应该是一个固定的宽度

代码如下所示:

spanningboth.grid(row=0, column=0, columnspan = 2)
infirstcol.grid(column=0, row=1, sticky='EW')
insecondcol.grid(column = 1, row = 1)

“如果我做同样的事情,但将两个小部件放在一个较低的行中,那么列的宽度都设置为跨越两行的小部件宽度的一半。”-这不是一个正确的说法。无论两个较小的小部件位于顶部还是底部,其行为都是相同的。请提供一个完整的例子来说明问题。@BryanOakley我在发布问题后立即意识到该部分不正确,并编辑了该问题。您不能这样做,因为从逻辑上讲,该小部件保留了一行/列,无论占用多少空间,除了使用不同的几何体管理器或设置更多几何体管理器外,您实际上无法对此执行任何操作columns@Matiiss:你的评论没有多大意义<代码>网格高度可配置。OP问题的解决方案很可能是通过
网格
完成的。在小部件的父部件上使用
列配置(0,权重=1)