【问题标题】:How to set where extra padding goes in tkinter如何在 tkinter 中设置额外填充的位置
【发布时间】:2014-11-10 11:33:07
【问题描述】:

我有一些 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 列之间添加填充。

【问题讨论】:

    标签: python tkinter grid label columnspan


    【解决方案1】:

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

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

    我用过这个tkinter doc

    【讨论】:

      猜你喜欢
      • 2016-01-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-03
      • 1970-01-01
      • 2015-04-13
      • 1970-01-01
      相关资源
      最近更新 更多