Виджет Notebook представляет набор вкладок. Среди параметров виджета следует выделить следующие:
width: ширина виджета
height: высота виджета
cursor: курсор при наведении на виджет
padding: отступы от границ виджета до его содержимого
style: стиль виджета
Для управления вкладками Notebook предоставляет ряд методов, в частности, для добавления вкладки применяется метод add()
add(child, state, sticky, padding, text, image, compound, underline)
Параметры метода
child
: добавляемый виджет, для которого собственно и создается вкладка. Обычно это Frame, который затем добавляет другие виджеты
state
: состояние вкладки. Возможные значения: "normal", "disabled", "hidden"
sticky
: определяет прикрепление виджета к определенной стороне вкладки
padding
: отступы от границ вкладки до внутреннего содержимого
text
: заголовок вкладки
image
: изображение в заголовке вкладке
compound
: управляет расположением изображения и текста в заголовке вкладки
underline
: определяет номер подчеркнутого символа в заголовке вкладки
Кроме того, чтобы скрыть временно вкладку, применяется метод hide()
hide(tabId)
В качестве параметра принимает идентификатор вкладки, который по умолчанию представляет числовой индекс вкладки начиная с 0.
Чтобы совсем удалить вкладку, применяется метод forget()
forget(child)
В качестве параметра в метод передается удаляемый виджет.
Рассмотрим простейший пример:
from tkinter import * from tkinter import ttk root = Tk() root.title("METANIT.COM") root.geometry("250x200") # создаем набор вкладок notebook = ttk.Notebook() notebook.pack(expand=True, fill=BOTH) # создаем пару фреймвов frame1 = ttk.Frame(notebook) frame2 = ttk.Frame(notebook) frame1.pack(fill=BOTH, expand=True) frame2.pack(fill=BOTH, expand=True) # добавляем фреймы в качестве вкладок notebook.add(frame1, text="Python") notebook.add(frame2, text="Java") root.mainloop()
Здесь определяются два фрейма, для которых создаются отдельные вкладки
За установку изображения в заголовке вкладки отвечает параметр image метода add. Кроме того, с помощью параметра compound можно задать расположение картинки относительно текста. В частности, параметр compound может принимать следующие значения:
top: изображение поверх текста
bottom: изображение под текстом
left: изображение слева от текста
right: изображение справа от текста
none: при наличии изображения отображается только изображение
text: отображается только текст
image: отображается только изображение
Например, отобразим картинку слева от текста:
from tkinter import * from tkinter import ttk root = Tk() root.title("METANIT.COM") root.geometry("250x200") # создаем набор вкладок notebook = ttk.Notebook() notebook.pack(expand=True, fill=BOTH) # создаем пару фреймвов frame1 = ttk.Frame(notebook) frame2 = ttk.Frame(notebook) frame1.pack(fill=BOTH, expand=True) frame2.pack(fill=BOTH, expand=True) python_logo = PhotoImage(file="./python_mc.png") java_logo = PhotoImage(file="./java_mc.png") # добавляем фреймы в качестве вкладок notebook.add(frame1, text="Python", image=python_logo, compound=LEFT) notebook.add(frame2, text="Java", image=java_logo, compound=LEFT) root.mainloop()
Следует отметить, что высота заголовка вкладки устанавливается в соответствии с высотой картинки: