如何设置tkinter中多余填充的位置



我有一些Python tkinter代码,其中有一个标签,可以更改长度并跨越不同的列。当它改变长度时,额外的填充似乎在它所跨越的列之间共享,而我希望它只添加到一列中。作为下面简单界面中的一个例子,我希望将所有额外的填充添加到第2列,这样随着旋转框的增加,"Move me"标签会向右移动,但"Keep me still"标签会保持原样。请有人教我如何实现这一点?最好不要上课(是的,我知道我需要尽快了解它们:P)

from tkinter import *
from tkinter import ttk
gui = Tk()
toplabel = StringVar()
value = StringVar()
def combofunc(*args):
    toplabel.set('* ' * 10 * int(value.get()))
ttk.Label(gui, textvariable=toplabel).grid(column=1, columnspan=3, row=1, sticky=W)
Spinbox(gui, from_=1, to=100, textvariable=value, command=combofunc).grid(column=1, row=2, sticky=W)
ttk.Label(gui, text='Keep me still').grid(column=2, row=2, sticky=W)
ttk.Label(gui, text='Move me').grid(column=3, row=2, sticky=W)
for child in gui.winfo_children():
    child.grid_configure(padx=5, pady=5)
combofunc()
gui.mainloop()

编辑:我的意思是希望在第2列的右侧或第2列和第3列之间添加填充。

您需要配置具有扩展权重的列。在某处添加以下内容。

for i, j in ((1,0), (2,1), (3,0)):
    gui.columnconfigure(i, weight=j)

我使用了这个tkinter-doc

最新更新