我正在使用以下代码,并尝试在标签上居中显示文本:
from tkinter import *
root = Tk()
llist = ["first:","second label:","a really long label:","fourth:","fifth:"]
nrow = 0
for i in range(len(llist)):
# Label(root, text=llist[i], justify='right').grid(row=nrow, column=0) # does not work
# Label(root, text=llist[i], justify=RIGHT).grid(row=nrow, column=0) # does not work
# Label(root, text=llist[i], anchor=E).grid(row=nrow, column=0) # does not work
# Label(root, text=llist[i], anchor=E, justify=RIGHT).grid(row=nrow, column=0) # does not work
Label(root, text=llist[i]).grid(row=nrow, column=0, sticky=E) # WORKS;
Entry(root).grid(row=nrow, column=1)
nrow += 1
root.mainloop()
文本保留在center
中,其中有我提到的不适用于上述代码的选项:
只有在grid()
中使用sticky
选项,它才能正常工作:
为什么justify
和anchor
选项在上面的代码中不起作用,即使它们在http://effbot.org/tkinterbook/label.htm等多个地方提到过?如何使用justify
和anchor
对齐标签中的文本?在
这是因为您没有为
Label
设置width
,如果不设置,Label
将适合其内容。所以简而言之,Label
内的文本使用anchor
选项,但是Label
的长度与文本的长度相同。位于center
的不是text
,而是Label
。在如果手动设置宽度:
它可以工作,但是很难手动指定}选项更好。在
Label
的长度,因此使用grid
的{相关问题 更多 >
编程相关推荐