Шаг 44.
Библиотека Tkinter. Компоненты и вспомогательные классы. Стилизуемые компоненты. Компонент Notebook: панель с вкладками

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

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

    Панель с вкладками поддерживает немного опций:

    Однако набор поддерживаемых компонентом методов весьма велик:

    При выборе какой-либо вкладки в панели возникает виртуальное событие NotebookTabChanged.

    Далее приведен пример использования панели для размещения двух контейнеров с компонентами. Для наглядности размещение компонентов в панели выполнено разными способами - с помощью методов add() и insert():

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("Пример использования Notebook")
        # Запрещаем изменять размеры окна
        self.master.resizable(False, False)

    def create_widgets(self):
        ntb = tkinter.ttk.Notebook(self)
        ntb.pack()
        frame2 = tkinter.ttk.Frame(ntb)
        lblName2 = tkinter.ttk.Label(frame2, text="Фамилия")
        lblName2.pack()
        entName2 = tkinter.ttk.Entry(frame2)
        entName2.pack()
        ntb.add(frame2, text="Фамилия", padding=4)
        frame1 = tkinter.ttk.Frame(ntb)
        lblName1 = tkinter.ttk.Label(frame1, text="Имя")
        lblName1.pack()
        entName1 = tkinter.ttk.Entry(frame1)
        entName1.pack()
        ntb.insert (frame2, frame1, text="Имя", padding=4)
        ntb.select(0)
          

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

    Результат работы приложения приведен на рисунке 1.


Рис.1. Результат работы приложения

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




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