Как создать виджет Tkinter Notebook в Python

Содержание

Что такое виджет Tkinter Notebook?

Виджет Tkinter Notebook в Python позволяет создавать и выбирать страницы содержимого, нажимая на вкладки:

Виджет Tkinter Notebook - демонстрация

При нажатии на одну из этих вкладок виджет Notebook отобразит дочернюю панель, связанную с выбранной вкладкой. Обычно дочерняя панель — это виджет Frame.

Для создания виджета используйте класс ttk.Notebook следующим образом:

notebook = ttk.Notebook(master,**kw)

В этом синтаксисе:

  • master: Это родительский виджет блокнота. Обычно это главное окно.
  • **kw: позволяет указать ключевые аргументы, которые управляют внешним видом виджета.

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

Методы блокнота

Класс ttk.Notebook предоставляет вам множество удобных методов, позволяющих эффективно управлять вкладками.

Ниже описаны наиболее часто используемые из них:

add(child, **kwargs)

Метод add() добавляет дочерний виджет в окно. Аргумент **kwargs — это один или несколько параметров. Вот важные из них:

  • child — это виджет, который можно добавить в блокнот.
  • Параметр text определяет метку, которая отображается на вкладке.
  • Параметр image определяет изображение, которое будет отображаться на вкладке.
  • Если вы используете и текст, и изображение, вам нужно использовать составной вариант. Составной вариант описывает положение изображения относительно текста. Это может быть tk.TOP, tk.BOTTOM, tk.LEFT, tk.RIGHT, tk.CENTER. Например, tk.LEFT поместит изображение слева от текста.
  • Параметр underline принимает ноль или положительное целое число. Он указывает символ в позиции текста на вкладке, который нужно подчеркнуть.

hide(tabId)

Метод hide() временно удаляет вкладку, идентифицированную tabId из Notebook. Вкладки имеют индекс, начинающийся с нуля. Это и означает, что первая вкладка начинается с нуля.

Чтобы показать вкладку, нужно снова вызвать метод add(). Соответствующего метода show() нет.

forget(child)

Метод forget() навсегда удаляет указанный дочерний виджет из блокнота.

Пример виджета Tkinter Notebook

Следующая программа показывает, как создать блокнот с двумя вкладками:

import tkinter as tk
from tkinter import ttk

# root window
root = tk.Tk()
root.geometry('400x300')
root.title('Notebook Demo')

# create a notebook
notebook = ttk.Notebook(root)
notebook.pack(pady=10, expand=True)

# create frames
frame1 = ttk.Frame(notebook, width=400, height=280)
frame2 = ttk.Frame(notebook, width=400, height=280)

frame1.pack(fill='both', expand=True)
frame2.pack(fill='both', expand=True)

# add frames to notebook

notebook.add(frame1, text='General Information')
notebook.add(frame2, text='Profile')


root.mainloop()

Выход:

Пример виджета Notebook

Как это работает.

  • Сначала создайте виджет Notebook, родительским элементом которого является корневое окно:
notebook = ttk.Notebook(root)
notebook.pack(pady=10, expand=True)
  • Во-вторых, создайте два фрейма, родительским элементом которых будет блокнот:
frame1 = ttk.Frame(notebook, width=400, height=280)
frame2 = ttk.Frame(notebook, width=400, height=280)

frame1.pack(fill='both', expand=True)
frame2.pack(fill='both', expand=True)
  • В-третьих, добавьте эти фреймы в блокнот с помощью метода add():
notebook.add(frame1, text='General Information')
notebook.add(frame2, text='Profile')
Похожие посты
Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *