Модуль Tkinter ttk и виджеты Tk themed в в Python

Содержание

Знакомство с виджетами Tk themed

Tkinter имеет два поколения виджетов:

  • Старые классические виджеты tk. Tkinter представил их в 1991 году.
  • Новые тематические виджеты ttk добавлены в 2007 году с Tk 8.5. Новые виджеты Tk themed заменяют многие (но не все) классические виджеты.

Обратите внимание, что ttk означает Tk themed. Поэтому виджеты Tk themed такие же, как и виджеты ttk.

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

Следующие операторы импортируют классические и новые виджеты Tk themed в Python:

import tkinter as tk
from tkinter import ttk

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

import tkinter as tk
from tkinter import ttk

root = tk.Tk()

tk.Label(root, text='Classic Label').pack()
ttk.Label(root, text='Themed Label').pack()

root.mainloop()

Выход:

Создание классических и новых меток

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

Преимущества использования виджетов Tk themed

Используя виджеты Tk themed, вы получаете следующие преимущества:

  • Разделение поведения и внешнего вида виджета — виджеты ttk пытаются отделить код, реализующий их поведение, от их внешнего вида с помощью системы стилей.
  • Собственный внешний вид и функции — виджеты ttk имеют собственный внешний вид и функции платформы, на которой работает программа.
  • Упрощение поведения виджетов, зависящего от состояния — виджеты ttk упрощают и обобщают поведение виджетов, зависящее от состояния.

Виджеты ttk

Следующие виджеты ttk заменяют виджеты Tkinkter с теми же именами:

  • Button
  • Checkbutton
  • Entry
  • Frame
  • Label
  • LabelFrame
  • Menubutton
  • PanedWindow
  • Radiobutton
  • Scale
  • Scrollbar
  • Spinbox

А следующие виджеты являются новыми и специфичными для ttk:

  • Combobox
  • Notebook
  • Progressbar
  • Separator
  • Sizegrip
  • Treeview
Похожие посты
Добавить комментарий

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