Как растянуть в ширину text (Python tkinter)
У меня есть вот такой текст
но проблема в том что он не растягиваеться в ширину по всему окну Tkinter и выглядит это вот так:
Также я пробовал решить проблему через метод width и fill, но ничего из этого не сработало.
Создавал текст, вот так:
tk.Label(f,width=80,height=2,bg='purple',text=f"{itog}").pack()
Ответы (2 шт):
Попробуйте так
import tkinter as tk
root = tk.Tk()
root.geometry("200x100")
label = tk.Label(root, height=2, bg='purple', text="Hello World")
label.grid(row=0, column=0, sticky="nsew")
root.grid_columnconfigure(0, weight=1) # weight=1
root.mainloop()
Используйте .pack(fill=tk.X). Тогда элемент заполнит всё пространство по горизонтали и будет растягиваться при изменении размеров родительского виджета. Если он этого не делает, то смотрите параметры размещения этого родительского виджета (f в вашем случае) и какие параметры заполнения у него. И так далее по иерархии.
Пример, на котором работает как вам требуется.
import tkinter as tk
itog = "Some very very long is here."
root = tk.Tk()
f = tk.Frame(root)
f.pack(fill=tk.X)
tk.Label(f,width=80,height=2,bg='purple',text=f"{itog}").pack(fill=tk.X)
root.mainloop()
Ещё у pack() есть полезный параметр expand=True/False. Обычно комбинацией этих опций (expand и fill) можно добиться требуемого поведения виджета. Но опять же, напоминаю, что поведение надо выстраивать по всей иерархии. Если, к примеру, родительскому контейнеру не задали разрешение менять ширину, то все дочерние элементы будут упираться в него.


