如何在Python中使用Tkinter创建填充窗口宽度的换行文本?

时间:2012-08-14 09:25:28

标签: python tkinter

Label小部件不换行。 Message小部件将换行文本,但强制它大致为方形。这是一个例子。

from Tkinter import *

root = Tk()
root.title("hello")

Message(root, text=48*'xxxxx ').grid(row=0, column=0, columnspan=3)

Label(root, text='Name:').grid(row=1, column=0)
Entry(root, width=50).grid(row=1, column=1)
Button(root, text="?").grid(row=1, column=2)

Button(root, text="Left").grid(row=2, column=0)
Button(root, text="Center").grid(row=2, column=1)
Button(root, text="Right").grid(row=2, column=2)

root.mainloop()

我知道我可以使用aspect=700来改变形状,但是这样的硬编码就是我想要避免的。

3 个答案:

答案 0 :(得分:28)

Tkinter标签小部件确实换行。只是默认设置是不包装。要使标签上的文本换行设置“wraplength”参数,其单位为屏幕单位,因此请尝试wraplength = 50并根据需要进行调整。您还需要将“对齐”设置为LEFT,RIGHT或CENTER。希望有所帮助。

答案 1 :(得分:5)

welcomenote = Label(root, text="Your long text", font="helvetica 14", 
wraplength=300, justify="center")
welcomenote.pack()

答案 2 :(得分:0)

尝试以下操作:

tk.Label(root, textvariable=text, wraplength=500).pack()

这里500是将字符放到下一行之前的像素量。