Модуль 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