Отрегулируйте ширину столбца ttk.Treeview, чтобы он соответствовал его содержимому, и сделайте горизонтальную прокрутку Python

Программы на Python
Ответить
Anonymous
 Отрегулируйте ширину столбца ttk.Treeview, чтобы он соответствовал его содержимому, и сделайте горизонтальную прокрутку

Сообщение Anonymous »

Код: Выделить всё

import tkinter as tk
import tkinter.ttk

root = tk.Tk()
root.geometry("400x300")

frame = tk.Frame(root)
frame.pack(fill="both", expand=True)

vertical_scrollbar = tk.Scrollbar(frame, orient="vertical")
vertical_scrollbar.pack(side="right", fill="y")
horizontal_scrollbar = tk.Scrollbar(frame, orient="horizontal")
horizontal_scrollbar.pack(side="bottom", fill="x")
horizontal_scrollbar.update()
vertical_scrollbar.pack_configure(pady=(0, horizontal_scrollbar.winfo_height()))

treeview = tk.ttk.Treeview(frame, show="tree")
treeview.pack(fill="both", expand=True)
treeview.column("#0", stretch=True)
# treeview.column("#0", stretch=False, width=800)
# treeview.column("#0", stretch=False, width=2000)

treeview.configure(yscrollcommand=vertical_scrollbar.set)
treeview.configure(xscrollcommand=horizontal_scrollbar.set)
vertical_scrollbar.configure(command=treeview.yview)
horizontal_scrollbar.configure(command=treeview.xview)

item = ""
for i in range(50):
item = treeview.insert(item, "end", text=f"Item{i+1} "*5, open=True)

root.mainloop()
Установка Stretch=True не растягивает ширину столбца в соответствии с его содержимым, а растягивает (или сжимает) ширину столбца в соответствии с шириной древовидного представления. Любое содержимое столбца, выходящее за пределы ширины древовидного представления, обрезается, и горизонтальная прокрутка отсутствует вообще:
Изображение

Установка Stretch=False и указание ширины столбца вручную включает горизонтальную прокрутку. Однако, если вы установите слишком маленькую ширину, а фактическое содержимое столбца окажется шире, чем заданная ширина столбца, содержимое просто снова обрежется:
Изображение

С другой стороны, если вы установите слишком большую ширину, вы получите много пустого пространства и потенциально крошечный ползунок прокрутки:
Изображение

Как настроить ширину столбца так, чтобы она соответствовала содержимому столбца?
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»