如何在 Tkinter 中的标签中对齐文本
Posted
技术标签:
【中文标题】如何在 Tkinter 中的标签中对齐文本【英文标题】:How to justify text in label in Tkinter 【发布时间】:2016-09-16 00:41:54 【问题描述】:在 Python 中的 Tkinter 中: 我有一张带有不同标签的桌子。如何证明标签中的文本是合理的?因为它是一个表格,不同标签中的文字放在一起!
from tkinter import *
root=Tk()
a=Label(root,text='Hello World!')
a.pack()
a.place(x=200,y=200)
b=Label(root,text='Bye World')
b.pack()
b.place(x=200,y=100)
我想要一些东西来证明标签中的一些文本居中,但这不是我需要的东西,请检查:link
【问题讨论】:
请给我们一些代码 如果您在之后立即调用place
,那么调用pack
是没有意义的。只有一个会产生效果,而且它始终是您调用的最后一个。
【参考方案1】:
我会使用 .grid() 而不是使用 .pack() http://effbot.org/tkinterbook/grid.htm
网格将允许更好地管理您的组件
在下面找到一个使用和管理的例子:
Label(root, text="First").grid(row=0, sticky=W)
Label(root, text="Second").grid(row=1, sticky=W)
entry1 = Entry(root)
entry2 = Entry(root)
entry1.grid(row=0, column=1)
entry2.grid(row=1, column=1)
checkbutton.grid(columnspan=2, sticky=W)
image.grid(row=0, column=2, columnspan=2, rowspan=2,
sticky=W+E+N+S, padx=5, pady=5)
button1.grid(row=2, column=2)
button2.grid(row=2, column=3)
你最终会使用网格选项 padx="x" 来“证明”你的标签
【讨论】:
我想要一些东西来证明标签中的一些文本居中,但这不是我需要的东西,请检查:link 如前所述,使用网格和选项 padx="pixels",请查看effbot.org/tkinterbook/grid.htm 你会在那里找到你需要的东西 re “我会使用 grid() 而不是使用 pack()” - 他们没有使用pack
,他们使用的是 place
。他们尝试使用pack
,但是当您立即调用place
时,它会消除pack
的任何影响。
我认为你的意思是entry2 = Entry(root)
而不是entry1 = Entry(root)
连续两次。【参考方案2】:
默认情况下,标签中的文本在标签中居中。您可以使用anchor
属性和可能的justify
属性来控制它。 justify
仅在小部件中的文本超过一行时才会影响文本。
例如,要使标签内的文本右对齐,您可以使用anchor="e"
:
a=Label(root,text='Hello World!', anchor="e")
但请注意,如果标签的大小正好足以容纳文本,这似乎无效。在您的具体示例中,您需要为每个标签提供相同的宽度:
a=Label(..., width=12)
b=Label(..., width=12)
【讨论】:
其他锚点选项:tutorialspoint.com/python/tk_anchors.htm【参考方案3】:补充 Bryan 所说的,LEFT
是您正在寻找的常量,以正确格式化您的包装文本。您也可以使用RIGHT
或CENTER
(默认值)证明。
a=Label(root,text='Hello World!', anchor="e", justify=LEFT)
【讨论】:
以上是关于如何在 Tkinter 中的标签中对齐文本的主要内容,如果未能解决你的问题,请参考以下文章