2017-01-12 5 views
1

Я использую Python3 TTK Treeview для отображения дерева. Но, во-первых, суб-узлы не имеют отступ и видны только первый подуровень дерева. Родительский узел не отображает своих дочерних элементов.TTK Treeview не отображает поддеревья

from tkinter import * 
from tkinter.ttk import * 

Win = Tk() 

entries_tree = Treeview(Win, columns = ("Glyph", "Name"), show="tree") 
entries_tree.column("#0", width = 20) 
entries_tree.column("#1", width = 20) 
entries_tree.pack() 
#Test 
Un = entries_tree.insert("", "end", values = ["X", "Un"]) 
Deux = entries_tree.insert("", "end", values = ["X", "Deux"]) 
Trois = entries_tree.insert(Un, "end", values = ["X", "Un Un"], open = True) 
Quatre = entries_tree.insert(Un, "end", values = ["X", "Un Deux"]) 
Cinq = entries_tree.insert(Un, "end", values = ["X", "Un Trois"]) 
Six = entries_tree.insert(Trois, "end", values = ["X", "Un Un Un"]) 
Sept = entries_tree.insert(Trois, "end", values = ["X", "Un Un Deux"]) 

Win.mainloop() 

Результат: Первого дисплей
Fist display

Первых родительский узел расширен: его первый ребенок (Труа), который является родительским узлом не показывает расширение возможности глифа, и дети не отступ.

First parent node expanded.

+1

Пожалуйста, прочтите [Как создать минимальный, полный и проверяемый пример] (http://stackoverflow.com/help/mcve). –

+0

Если я не могу видеть подуточки от подучета, это потому, что я заставил ширину быть 20. Таким образом, знак плюса не появился. Но проблема с отступом сохраняется. Как Treeview управляет отступом? –

ответ

3

Добро пожаловать. Пожалуйста, уделите время, чтобы добавить свой вопрос (ы) в главный раздел вопросов. Это поможет другим будущим пользователям изучить ваш вопрос и соответствовать стандартам stackoverflow.

Чтобы увидеть каталог, то есть структуру дерева, вам необходимо:

  1. Расширьте столбец "# 0". Значение по умолчанию 20 достаточно велико, чтобы увидеть 1 индикатор, а не его дочерние элементы.
  2. Добавить текст = your_label_name в метод .insert для определения узла дерева.

Вы также можете добавить «open = True» в метод .insert для «Un», чтобы показать детям «Un» в начале.

from tkinter import * 
from tkinter.ttk import * 

Win = Tk() 

entries_tree = Treeview(Win, columns = ("Glyph", "Name"), show="tree") 
entries_tree.column("#0", width = 120, stretch=0) 
entries_tree.column("#1", width = 20, stretch=0) 
entries_tree.pack() 
#Test 
Un = entries_tree.insert("", "end", text='Un', values = ["X", "Un"], open = True) 
Deux = entries_tree.insert("", "end", text='Deux', values = ["X", "Deux"]) 
Trois = entries_tree.insert(Un, "end", text='Trois', values = ["X", "Un Un"], open = True) 
Quatre = entries_tree.insert(Un, "end", text='Quatre', values = ["X", "Un Deux"]) 
Cinq = entries_tree.insert(Un, "end", text='Cinq', values = ["X", "Un Trois"]) 
Six = entries_tree.insert(Trois, "end", text='Six', values = ["X", "Un Un Un"]) 
Sept = entries_tree.insert(Trois, "end", text='Sept', values = ["X", "Un Un Deux"]) 

Win.mainloop() 

treeview

+0

Большое спасибо. Это решило мою проблему. –

Смежные вопросы