如何在 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 是您正在寻找的常量,以正确格式化您的包装文本。您也可以使用RIGHTCENTER(默认值)证明。

a=Label(root,text='Hello World!', anchor="e", justify=LEFT)

【讨论】:

以上是关于如何在 Tkinter 中的标签中对齐文本的主要内容,如果未能解决你的问题,请参考以下文章

如何更改标签小部件中的文本大小,python tkinter [重复]

如何在 iOS 中对齐文本视图和标签中的文本

TKinter:框架和根之间失去对齐

如何在 kivymd 按钮中对齐文本?

如何将标签中的文本对齐到右侧?

如何在python 3.4.x中的tkinter文本小部件中显示渲染的html内容