Tkinter固定列大小不起作用

时间:2014-04-08 19:49:14

标签: python tkinter

我正在尝试创建一个简单的程序,我希望将文本与右侧或左侧对齐。例如:

|Test                      |
|                      Test|

我的想法是为文本创建标签,并在第1列放置右对齐文本,在第0列左对齐。

from tkinter import *

labels = []
i = 0

window = Tk()
window.geometry('300x500')

def newlabel(t,align):
    global i
    label = Label(window,text=t)
    label.grid(row=i,column=align)
    label.columnconfigure(0,minsize=150)
    label.columnconfigure(1,minsize=150)
    labels.append(label)
    i += 1

newlabel('Test',0)
newlabel('Test',1)

window.mainloop()

然而,右侧的“测试”未正确放置:它位于第一个“测试”的旁边。

如何更改代码以将其完全放在右边?

由于

1 个答案:

答案 0 :(得分:0)

主要问题是你在错误的对象上调用columnconfigure。您应该在包含该列的窗口小部件上调用它,而不是在列中的窗口小部件。在你的情况下,你应该做window.columnconfigure(...)

您可能还希望为这些列赋予权重(也使用columnconfigure方法,将属性weight设置为正整数),以便它们增长和缩小以适合窗口。如果您这样做,您还需要在将其添加到列时设置sticky属性,以便它们增长以填充其列。