Шаг 48.
Библиотека Tkinter. Компоненты и вспомогательные классы. Стилизуемые компоненты. Компонент Treeview: иерархический список (окончание)

    На этом шаге мы рассмотрим методы этого компонента и прведем примеры его использования.

    А теперь приступим к рассмотрению методов компонента Treeview. Их очень много:

    Компонент Treeview поддерживает три виртуальных события:

    Вот пример вывода иерархического списка с применением компонента Treeview (результат его выполнения показан на рисунке 1):

import tkinter
import tkinter.ttk

class Application(tkinter.ttk.Frame):
    def __init__(self, master=None):
        super().__init__(master)
        # Обязательно указываем ширину и высоту контейнера посредством
        # опций width и height соответственно
        self.configure(width=200, height=100)
        self.pack(padx=4, pady=4)

        self.create_widgets()
        self.master.title("Пример использования Treeview")

    def create_widgets(self):
        self.img = tkinter.PhotoImage(file="icon.gif")
        trwPlatforms = tkinter.ttk.Treeview(self, columns=("Version"), 
               displaycolumns=(0,), show="tree")
        root = trwPlatforms.insert("", "end", 
               None, text="Python", image=self.img, values=("3.6.4",), open=True)
        trwPlatforms.insert(root, "end", None, 
               text="Pillow", image=self.img, values=("1.1.7",))
        trwPlatforms.insert(root, "end", None, 
               text="Django", image=self.img, values=("1.9.2",))
        trwPlatforms.insert(root, "end", None, 
               text="MySQLClient", image=self.img, values=("1.3.12",))
        root = trwPlatforms.insert("", "end", 
               None, text="PHP", image=self.img, values=("7.2.1",))
        trwPlatforms.insert(root, "end", None, 
               text="Laravel", image=self.img, values=("5.3.29",))
        trwPlatforms.column("Version", width=50, stretch=False, anchor="center")
        trwPlatforms.grid()

root = tkinter.Tk()
app = Application(master=root)
root.mainloop()
Архив с файлами можно взять здесь.


Рис.1. Компонент Treeview, отображающий иерархический список

    А вот пример использования компонента Treeview для вывода обычного списка, представленного в виде таблицы (рисунок 2):

import tkinter
import tkinter.ttk

class Application(tkinter.ttk.Frame):
    def __init__(self, master=None):
        super().__init__(master)
        # Обязательно указываем ширину и высоту контейнера посредством
        # опций width и height соответственно
        self.configure(width=200, height=100)
        self.pack(padx=4, pady=4)

        self.create_widgets()
        self.master.title("Пример использования Treeview")

    def create_widgets(self):
        trwPlatforms = tkinter.ttk.Treeview(self, columns=("Name", "Version"), 
             displaycolumns=(0, 1), show="headings")
        trwPlatforms.insert("", "end", None, values=("Python", "3.6.4"))
        trwPlatforms.insert("", "end", None, values=("PHP", "7.2.1"))
        trwPlatforms.insert("", "end", None, values=("Ruby", "2.5.0"))
        trwPlatforms.column("Version", width=50, stretch=False, anchor="center")
        trwPlatforms.heading("Name", text="Платформа")
        trwPlatforms.heading("Version", text="Версия", anchor="center")
        trwPlatforms.grid()


root = tkinter.Tk()
app = Application(master=root)
root.mainloop()
Архив с файлом можно взять здесь.


Рис.2. Компонент Treeview, отображающий обычную таблицу

    На следующем шаге мы рассмотрим виджет Scrollbar.




Предыдущий шаг Содержание Следующий шаг