Как использовать 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 - количество пикселей до того, как символы будут помещены на следующую строку.