На этом шаге мы рассмотрим опции этого компонента.
Компонент иерархического списка, представляемый классом Treeview, - самый сложный среди всех, определенных в модуле tkinter.ttk.
Компонент предназначен для вывода иерархического списка, представленного в виде таблицы из произвольного количества столбцов (рисунок 1).
Рис.1. Компонент Treeview, отображающий иерархический список
Каждый пункт такого списка может содержать сколько угодно вложенных в него пунктов. Пункт, в который вложены другие пункты, носит название родителя, а вложенные в него пункты - потомков. Слева от каждого пункта-родителя находится знакомый нам значок, с помощью которого производится разворачивание и сворачивание пункта.
Однако с помощью этого компонента можно вывести и обычный список, также представленный в виде таблицы. Пример такого списка можно увидеть на рисунке 2.
Рис.2. Компонент Treeview, отображающий обычную таблицу
В любом случае пользователь может выделять строки такого списка, щелкая на них мышью. Компонент Treeview поддерживает весьма большой набор опций:
trwPlatforms = tkinter.ttk.Treeview(self, columns=("Name", "Version"))
Нужно отметить один важный момент. Количество столбцов, реально выводящихся в списке, всегда будет на один больше, чем мы укажем в опции columns, - самый первый столбец, служебный, в котором выводятся значки для разворачивания и сворачивания пунктов, будет присутствовать в списке всегда. Однако мы можем при необходимости скрыть его.
Опция columns задает физический порядок расположения столбцов и их физические номера. Так, в нашем случае служебный столбец будет иметь физический номер 0, столбец Name - 1, а столбец Version - 2;
В последних двух случаях столбцы, не указанные в последовательности, не будут выведены на экран. Отметим, что служебный столбец, содержащий значки для разворачивания и сворачивания пунктов, все равно будет выведен - скрыть его посредством опции displaycolumns не получится.
Приведем пару примеров:
trwPlatforms = tkinter.ttk.Treeview(self, columns=("Name", "Version"), displaycolumns=(1, 0))
trwPlatforms = tkinter.ttk.Treeview(self, columns=("Name", "Version"), displaycolumns=("Name",))
Опция displaycolumns задаёт логический порядок расположения столбцов и их логические номера. Так, в первом примере служебный столбец будет иметь логический номер 0, выведенный за ним столбец Version - 1, а столбец Name, идущий последним, - 2;
trwPlatforms["show"] = "headings"
На следующем шаге мы рассмотрим методы этого виджета.