我正在使用以下代码并尝试将文本置于标签上:
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
中,我提到的选项不适用于上述代码:
只有sticky
中的grid()
选项才能正常运行:
为什么justify
的{{1}}和anchor
选项在上面的代码中不起作用,即使它们在http://effbot.org/tkinterbook/label.htm等多个地方被提及过?如何使用Label
和justify
来对齐标签中的文字?
答案 0 :(得分:1)
这是因为您尚未为width
设置Label
,如果您未设置Label
,则Label
将符合其内容。简而言之,anchor
中的文字与Label
选项一起使用,但center
的长度与文字的长度相同。位于text
的内容不是Label
,而是Label(root, text=llist[i], anchor="e", width=20).grid(row=nrow, column=0)
。
如果您为其手动设置宽度:
Label
它会起作用,但很难手动指定grid
的长度,因此使用sticky
' .wrapper-dropdown
选项要好得多。