Как использовать Tkinter в Python для создания текста, завернутого в строку, который заполняет ширину окна?

Виджет 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 для изменения формы, но такие жесткие номера, как это, я пытаюсь избежать.

Ответ 1

Виджет ярлыков Tkinter завершает работу. Просто установка по умолчанию не является оберткой. Чтобы получить текст на этикетке для обертывания, установите параметр "wraplength", единицы для этого - это блоки экрана, поэтому попробуйте wraplength = 50 и при необходимости отрегулируйте. Вам также необходимо установить "justify" в LEFT, RIGHT или CENTER. Надеюсь, это поможет.

Ответ 2

Попробуйте следующее:

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

Здесь 500 - количество пикселей до того, как символы будут помещены на следующую строку.