Верхний уровень Tkinter: открытие дерева, чтобы соответствовать кадру

У меня возникла проблема с тем, чтобы мое древовидное представление заполнило созданное окно верхнего уровня, я пробовал fill= "x" и fill="both", но не получил результата. Любое предложение сделать это.

from tkinter import ttk
import tkinter as tk


def my_treeview():
    mt = tk.Toplevel()
    mt.geometry("1000x580")

   tree = ttk.Treeview(mt)
   tree.insert("", "0", "item1", text="fill width")
   tree.insert("", "1", "item2", text="fill height")

   tree.pack(fill="both")


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

treeview = tk.Button(root, text="open treeview", command=my_treeview).pack()

root.mainloop()

person AD WAN    schedule 28.09.2017    source источник


Ответы (1)


fill="both" означает «заполнить всю выделенную вам область». Он делает именно это. Виджет дерева имеет определенную высоту, которой он хочет быть, поэтому пакет выделяет достаточно места для его размещения. Это оставляет много дополнительного пространства, которое не было выделено.

Если вы хотите, чтобы древовидное представление расширялось и заполняло все оставшееся пространство, а не только необходимое пространство, используйте параметр expand в дополнение к параметру fill.

Пример:

tree.pack(fill="both", expand=True)
person Bryan Oakley    schedule 28.09.2017
comment
За этот вопрос проголосовали против, я думаю, будет обнадеживающе указать причину, по которой я не буду повторять снова. - person AD WAN; 08.11.2017
comment
@ADWAN: откуда мне знать, почему за него проголосовали? Я предполагаю, что вопрос не показывает никаких признаков того, что вы проводите какие-либо исследования, прежде чем задавать вопрос. Ожидается, что вы проведете много исследований, прежде чем спрашивать. См. раздел Как много исследований ожидается от пользователей Stack Overflow? - person Bryan Oakley; 08.11.2017