Tkinter固定列宽无效
我正在尝试制作一个简单的程序,想要把文本对齐到左边或者右边。例如:
|Test |
| Test|
我的想法是创建一个文本标签,把右对齐的文本放在第一列,把左对齐的文本放在第零列。
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
主要问题是你在错误的对象上调用了 columnconfigure
。你应该在包含这个列的控件上调用它,而不是在列里面的控件上。在你的例子中,你应该使用 window.columnconfigure(...)
。
你可能还想给这些列设置权重(同样使用 columnconfigure
方法,设置 weight
属性为一个正整数),这样它们就可以根据窗口的大小来伸缩。如果你这样做了,还需要在把它们添加到列的时候设置 sticky
属性,这样它们就能填满自己的列。