Найти в Дзене
programmer's notes (python and more)

Программирование на языке Python. Библиотека tkinter. Создание иерархической структуры с помощью класса ttk.Treeview

Доброго времени суток, читатели, зрители моего канала programmer's notes. Не забывайте подписываться и писать свои комментарии к моим статьям и видео.

Представление иеррахической структуры с помощью класса ttk.Treeview

Сегодня начнём работать с интересным классом Treeview. С помощью него создавать и древовидные структуры и таблицы. Непосредственно в библиотеке tkinter его нет, будем брать его из пакета ttk. По объектам Treeview у нас будет несколько статей.

Ниже (рисунок 1) представлена программа создающая окно, а в нём объект Treeview. Программа демонстрирует возможности создания иерархической структуры. Показана обработка события выбора элемента и способа удаления элемента из дерева.

Рисунок 1. Программа демонстрирующа возможности Treeview. Текст программы см. ниже по ссылке
Рисунок 1. Программа демонстрирующа возможности Treeview. Текст программы см. ниже по ссылке
primer364.py

Пояснения к программе

  • В начале создаётся объект - дерево ttk.Treeview(self, show="tree"). Затем объект помещается и отображается в окне (pack()).
  • Добавляется элемент в дерево с помощью метода insert(). Первым параметром идёт либо "" - корень дерева, или идентификатор родителя. Параметр index указывает на то, куда добавлять элемент: tk.END - в конец. text - название элемента. iid - идентификатор элемента.
  • В программе обрабатываются два события: выбор элемента - <<TreeviewSelect>>, название выбранного элемента отображается в заголовке окна. Также обрабатывается нажатие клавиши del (код 119), при нажатии которой появляется возможность удалить элемент.
  • Для получения идентификатора выбранного элемента используется ttk.Treeview.focus().
  • Объект - элемент дерева (словарь) получается из идентификатора методом ttk.Treeview.item().
  • Для удаления элемента используется метод ttk.Treeview.delete(), аргументом которого является идентификатор элемента. Удаляются при этом и все дочерние элементы, т.е. цела ветка.
Рисунок 2. Окно программы (см. Рисунок 1)
Рисунок 2. Окно программы (см. Рисунок 1)

Пока всё! Продолжение следует...

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

У меня такое ощущение, что вы только что слезли с дерева
У меня такое ощущение, что вы только что слезли с дерева