【发布时间】:2018-08-05 14:56:02
【问题描述】:
我正在使用以下代码并尝试将标签上的文本居中:
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 选项才能正常工作:
为什么Label 的justify 和anchor 选项在上面的代码中不起作用,即使它们在多个地方被提及,例如http://effbot.org/tkinterbook/label.htm ?如何使用justify 和anchor 对齐Labels 中的文本?
【问题讨论】:
-
问题可能是当小部件适合时,它的文本的对齐可以被认为是anything,因为没有空间可以对齐。默认情况下,小部件是合适的。
-
justify 和 anchor 是如何使用的?
-
第二张图片的工作方式是首先裁剪标签所需的空间,然后将其放在第一列的东边。使用 justify,您应该使用 Label 小部件完全占据第一列,并且只需在 label 小部件内使用 justify 选项移动其文本。也许添加
bg='red'选项以更好地查看标签占用的空间。 -
将
background="pink"添加到您的标签中。您将能够更好地想象正在发生的事情。
标签: python python-3.x user-interface tkinter label