0

我有一些 Python tkinter 代码,其标签会改变长度并跨越各个列。当它改变长度时,额外的填充似乎在它跨越的列之间共享,而我希望它只添加到一列中。作为以下简单界面中的示例,我希望将所有额外的填充添加到第 2 列,以便随着旋转框的增加,“移动我”标签向右移动,但“保持我静止”标签留在原地。请有人可以告诉我如何使这项工作?最好不上课(是的,我知道我需要尽快了解它们: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 列之间添加填充。

4

1 回答 1

1

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

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

我使用了这个tkinter 文档

于 2014-11-10T23:34:34.907 回答