2016-03-05 4 views
3

Я пытаюсь создать Treeview - вот мой код:Понимание Tkinter Treeview

def treeview(self): 
     tree = Treeview(self.parent, columns=("no","name","props","subs", "summary")) 

     tree.heading('#0', text='No.') 
     tree.column('#0', width=100) 
     tree.heading('#1', text='Name') 
     tree.column('#1', width=100) 
     tree.heading('#2', text='Props') 
     tree.column('#2', width=100) 
     tree.heading('#3', text='Subs') 
     tree.column('#3', width=100) 
     tree.heading('#4', text='Summary') 
     tree.column('#4', width=100) 

     tree.place(relx=0.5,rely=0.2, anchor=CENTER) 

Там должен быть 5 колонка - Тем не менее, есть шестой пустой столбец справа от последнего столбца. Почему это?

Также, как я могу добавить текст в каждый столбец? Благодаря!

+0

Пример кода Treeview на http://www.tkdocs.com/tutorial/tree.html. –

ответ

2

0 «-го столбца в TreeView является всегда Значок„колонка“- см this manual page, где он говорит:

Ваш Treeview виджет будет структурирован с несколькими столбцами. В первом столбце, который мы назовем столбцом значка, отображаются значки, которые сворачивают или разворачивают элементы. В остальных столбцах вы можете отображать любую информацию, которая вам нравится.

Так моя догадка будет то, что при попытке указать метки для столбца 0 Ок добавления один? (итоговая сумма 6).


Что касается adding текста к элементов вашего Treeview .. Опять же, the manual page говорит:

Начиная с элементами верхнего уровня, используйте метод .Вмонтировать() для заполнения дерево. Каждый вызов этого метода добавляет к дереву один элемент. Используйте аргумент открытого ключевого слова этого метода, чтобы указать, был ли элемент изначально расширен или свернут.

Если вы хотите указать значение iid для этого элемента, используйте аргумент ключевого слова iid. Если вы опустите этот аргумент, ttk сделает его и вернет его в результате вызова метода .insert().

Которая охватывает как вставки строки, затем «на самом деле добавить текст в каждой колонке»:

values: Этот аргумент поставляет элементы данных, которые будут отображаться в каждом столбце пункт. Значения задаются в порядке логического столбца. Если задано слишком мало значений, остальные столбцы будут пустыми в этом элементе; если задано слишком много значений, дополнительные функции будут отброшены.

Таким образом, tree.insert(values=[3,"Fred",'prop','sub','guy named Fred']) бы вставить ряд с заданной values для столбцов вы определили.

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