tkinter.ttk — тематические виджеты Tk
Исходный код: Lib/tkinter/ttk.py
Модуль tkinter.ttk предоставляет доступ к набору тематических виджетов Tk, представленному в Tk 8.5. Внешний вид его виджетов адаптируется к нативной теме платформы, благодаря чему приложение выглядит лучше и единообразнее, чем при использовании классических виджетов tkinter, внешний вид которых фиксирован.
Основная идея tkinter.ttk заключается в том, чтобы по возможности отделить код, реализующий поведение виджета, от кода, отвечающего за его внешний вид.
Виджеты Ttk используются так же, как классические виджеты tkinter, и используют ту же инфраструктуру: иерархию виджетов, менеджеры геометрии, связь с переменными и привязку событий. Эти фундаментальные понятия рассмотрены в документации tkinter и здесь не повторяются.
Добавлено в версии 3.1.
См. также
- Поддержка стилизации виджетов Tk (TIP #48)
-
Предложение по улучшению Tcl, в котором был представлен механизм стилизации тематических виджетов.
Использование Ttk
Чтобы начать использовать Ttk, импортируйте его модуль:
from tkinter import ttk
Чтобы заменить базовые виджеты Tk, импорт должен следовать за импортом Tk:
from tkinter import * from tkinter.ttk import *
Этот код заставляет несколько виджетов tkinter.ttk (Button, Checkbutton, Entry, Frame, Label, LabelFrame, Menubutton, OptionMenu, PanedWindow, Radiobutton, Scale, Scrollbar и Spinbox) автоматически заменять виджеты Tk.
Примечание
Замена классических виджетов на from tkinter.ttk import * удобна для адаптации существующего кода, но в новом коде обычно понятнее импортировать модуль как from tkinter import ttk и явно обращаться к тематическим виджетам, например ttk.Button.
Это позволяет использовать новые виджеты, которые обеспечивают более привлекательный внешний вид на разных платформах; однако заменяющие виджеты не полностью совместимы. Главное отличие состоит в том, что параметры виджетов, такие как fg, bg и другие параметры, связанные со стилизацией виджетов, больше не доступны для виджетов Ttk. Вместо них для более эффективной стилизации используйте класс ttk.Style.
Виджеты Ttk
Ttk включает 18 виджетов, двенадцать из которых уже существовали в tkinter: Button, Checkbutton, Entry, Frame, Label, LabelFrame, Menubutton, PanedWindow, Radiobutton, Scale, Scrollbar и Spinbox. Остальные шесть — новые: Combobox, Notebook, Progressbar, Separator, Sizegrip и Treeview. Все они являются подклассами Widget.
Использование виджетов Ttk улучшает внешний вид приложения. Как отмечалось выше, существуют различия в способах описания стилей.
Код Tk:
l1 = tkinter.Label(text="Test", fg="black", bg="white") l2 = tkinter.Label(text="Test", fg="black", bg="white")
Код Ttk:
style = ttk.Style()
style.configure("BW.TLabel", foreground="black", background="white")
l1 = ttk.Label(text="Test", style="BW.TLabel")
l2 = ttk.Label(text="Test", style="BW.TLabel")
Дополнительные сведения о стилизации Ttk см. в документации класса Style.
Виджет
ttk.Widget определяет стандартные параметры и методы, поддерживаемые тематическими виджетами Tk, и не предназначен для непосредственного создания экземпляров.
Стандартные параметры
Все виджеты ttk принимают следующие параметры:
Параметр | Описание |
|---|---|
class | Задает класс окна. Класс используется при запросе к базе параметров для получения других параметров окна, при определении стандартных bindtags окна, а также при выборе стандартной компоновки и стиля виджета. Этот параметр доступен только для чтения и может быть задан только при создании окна. |
cursor | Задает курсор мыши, используемый для виджета. См. тип параметра cursor в разделе Типы данных параметров Tk. Если задана пустая строка (значение по умолчанию), курсор наследуется от родительского виджета. |
takefocus | Определяет, принимает ли окно фокус при обходе с помощью клавиатуры. Возвращается значение 0, 1 или пустая строка. Если возвращается 0, окно полностью пропускается при обходе с помощью клавиатуры. Если возвращается 1, окно получает фокус ввода, если оно отображается. Пустая строка означает, что сценарии обхода самостоятельно решают, следует ли передавать окну фокус. |
style | Может использоваться для задания пользовательского стиля виджета. |
Параметры прокручиваемых виджетов
Следующие параметры поддерживаются виджетами, управляемыми полосой прокрутки.
Параметр | Описание |
|---|---|
xscrollcommand |
Используется для взаимодействия с горизонтальными полосами прокрутки. Когда отображение в окне виджета изменяется, виджет вызывает обратный вызов xscrollcommand. Обычно этому параметру присваивается метод |
yscrollcommand | Используется для взаимодействия с вертикальными полосами прокрутки. Дополнительные сведения см. выше. |
Параметры меток
Следующие параметры поддерживаются метками, кнопками и другими виджетами, похожими на кнопки.
Параметр | Описание |
|---|---|
text | Задает текстовую строку, отображаемую внутри виджета. |
textvariable | Задает имя переменной, значение которой будет использоваться вместо параметра text. |
underline | Если задан, указывает индекс (начиная с 0) символа текстовой строки, который нужно подчеркнуть. Подчеркнутый символ используется для активации с помощью мнемоники. |
image | Задает отображаемое изображение. Это список из одного или нескольких элементов. Первый элемент — имя изображения по умолчанию. Остальная часть списка представляет собой последовательность пар «состояние/значение», определенных в |
compound |
Задает способ отображения изображения относительно текста, если заданы и параметры текста, и изображения. Допустимые значения:
|
width | Если значение больше нуля, задает объем пространства в ширине символов, выделяемого для текстовой метки; если значение меньше нуля, задает минимальную ширину. Если значение равно нулю или не задано, используется естественная ширина текстовой метки. |
Параметры совместимости
Параметр | Описание |
|---|---|
state | Может принимать значение «normal» или «disabled» для управления флагом состояния «disabled». Этот параметр доступен только для записи: его установка меняет состояние виджета, но метод |
Состояния виджета
Состояние виджета представляет собой битовую маску независимых флагов состояния.
Флаг | Описание |
|---|---|
active | Курсор мыши находится над виджетом, и нажатие кнопки мыши приведет к выполнению действия |
disabled | Виджет отключен программно |
focus | Виджет находится в фокусе клавиатуры |
pressed | На виджет нажимают |
selected | «Включено», «истина» или «текущее» для таких элементов, как флажки и переключатели |
background | В Windows и Mac существует понятие «активного» окна или окна переднего плана. Состояние background установлено для виджетов в окне на заднем плане и сброшено для виджетов в окне на переднем плане |
readonly | Виджет не должен разрешать пользователю вносить изменения |
alternate | Альтернативный формат отображения, специфичный для виджета |
invalid | Значение виджета недопустимо |
Спецификация состояния представляет собой последовательность имен состояний, перед которыми при необходимости ставится восклицательный знак, указывающий, что флаг отключен.
ttk.Widget
Помимо описанных ниже методов, ttk.Widget поддерживает методы tkinter.Widget.cget и tkinter.Widget.configure.
-
class tkinter.ttk.Widget -
-
identify(x, y) -
Возвращает имя элемента в позиции x y или пустую строку, если точка не находится ни в одном элементе.
x и y — координаты в пикселях относительно виджета.
-
instate(statespec, callback=None, *args, **kw) -
Проверяет состояние виджета. Если обратный вызов не задан, возвращает
True, если состояние виджета соответствует statespec, иFalseв противном случае. Если обратный вызов задан, он вызывается с аргументами, если состояние виджета соответствует statespec.
-
state(statespec=None) -
Изменяет или проверяет состояние виджета. Если задан statespec, устанавливает состояние виджета в соответствии с ним и возвращает новый statespec, указывающий, какие флаги изменились. Если statespec не задан, возвращает текущие включенные флаги состояния.
Не путайте этот метод с
Wm.state.
Обычно statespec представляет собой список или кортеж.
-
Поле со списком
Виджет ttk.Combobox объединяет текстовое поле с раскрывающимся списком значений. Этот виджет является подклассом Entry.
Помимо методов, унаследованных от Widget: cget(), configure(), identify(), instate() и state(), а также методов, унаследованных от Entry: bbox(), delete(), icursor(), index(), insert(), selection*, xview*, он имеет и другие методы, описанные в разделе ttk.Combobox.
Параметры
Этот виджет принимает следующие специфические параметры:
Параметр | Описание |
|---|---|
exportselection | Логическое значение. Если установлено, выделение в виджете связывается с выделением X (которое, например, можно получить вызовом Misc.selection_get). |
justify | Задает выравнивание текста внутри виджета. Возможные значения: «left», «center» или «right». |
height | Задает высоту раскрывающегося списка в строках. |
postcommand | Сценарий (который при необходимости можно зарегистрировать с помощью Misc.register), вызываемый непосредственно перед отображением значений. Он может задавать, какие значения отображать. |
state | Одно из значений: «normal», «readonly» или «disabled». В состоянии «readonly» значение нельзя редактировать напрямую, и пользователь может только выбрать одно из значений в раскрывающемся списке. В состоянии «normal» текстовое поле можно редактировать напрямую. В состоянии «disabled» взаимодействие невозможно. |
textvariable | Задает имя переменной, значение которой связано со значением виджета. При изменении значения этой переменной обновляется значение виджета, и наоборот. См. |
values | Задает список значений для отображения в раскрывающемся списке. |
width | Задает целочисленное значение желаемой ширины поля ввода в символах среднего размера для шрифта виджета. |
Примечание
В Tk 9.1 был добавлен параметр locale, который задает локаль для определения границ слов и символов в тексте (по умолчанию "C").
Виртуальные события
Виджеты поля со списком создают виртуальное событие <<ComboboxSelected>>, когда пользователь выбирает элемент из списка значений.
ttk.Combobox
-
class tkinter.ttk.Combobox -
-
current(newindex=None) -
Если задано newindex, устанавливает для поля со списком значение элемента с позицией newindex. В противном случае возвращает индекс текущего значения или -1, если текущего значения нет в списке значений.
-
get() -
Возвращает текущее значение поля со списком.
-
set(value) -
Устанавливает для поля со списком значение value.
-
Счетчик
Виджет ttk.Spinbox — это ttk.Entry с кнопками увеличения и уменьшения. Его можно использовать для чисел или списков строковых значений. Этот виджет является подклассом Entry. Помимо методов, унаследованных от Widget: cget(), configure(), identify(), instate() и state(), а также методов, унаследованных от Entry: bbox(), delete(), icursor(), index(), insert(), xview*, он имеет и другие методы, описанные в ttk.Spinbox.
Параметры
Этот виджет принимает следующие специфические параметры:
Параметр | Описание |
|---|---|
from | Вещественное значение. Если задано, это минимальное значение, до которого кнопка уменьшения может уменьшить значение. При использовании в качестве аргумента его необходимо записывать как |
to | Вещественное значение. Если задано, это максимальное значение, до которого кнопка увеличения может увеличить значение. |
increment | Вещественное значение. Задает величину, на которую кнопки увеличения и уменьшения изменяют значение. По умолчанию — 1.0. |
values | Последовательность строковых или вещественных значений. Если задана, кнопки увеличения и уменьшения будут циклически переключаться между элементами этой последовательности, а не увеличивать или уменьшать числа. |
wrap | Логическое значение. Если |
format | Строковое значение. Задает формат чисел, устанавливаемых кнопками увеличения и уменьшения. Формат должен иметь вид «%W.Pf», где W — ширина значения с заполнением, P — точность, а «%» и «f» — литералы. |
command | Вызываемый объект Python. Вызывается без аргументов при каждом нажатии кнопки увеличения или уменьшения. |
Виртуальные события
Виджет счетчика создает виртуальное событие <<Increment>>, когда пользователь нажимает <Up>, и виртуальное событие <<Decrement>>, когда пользователь нажимает <Down>.
ttk.Spinbox
-
class tkinter.ttk.Spinbox -
При использовании нецелого шага см. раздел числовые значения и локаль.
Добавлено в версии 3.8.
-
get() -
Возвращает текущее значение счетчика.
-
set(value) -
Устанавливает для счетчика значение value.
-
Блокнот
Виджет Ttk Notebook управляет коллекцией окон и отображает только одно из них в каждый момент времени. Каждое дочернее окно связано с вкладкой, которую пользователь может выбрать, чтобы изменить отображаемое в данный момент окно.
Параметры
Этот виджет поддерживает следующие специфические параметры:
Параметр | Описание |
|---|---|
height | Если задано значение больше нуля, указывает требуемую высоту области панелей (без учета внутренних отступов и вкладок). В противном случае используется максимальная высота всех панелей. |
padding | Указывает размер дополнительного пространства вокруг внешней границы блокнота. Отступы задаются списком, содержащим до четырех значений длины: слева, сверху, справа и снизу. Если указано меньше четырех элементов, нижний отступ по умолчанию равен верхнему, правый — левому, а верхний — левому. |
width | Если задано значение больше нуля, указывает требуемую ширину области панелей (без учета внутренних отступов). В противном случае используется максимальная ширина всех панелей. |
Параметры вкладок
Для вкладок также предусмотрены специальные параметры:
Параметр | Описание |
|---|---|
state | Одно из значений: “normal”, “disabled” или “hidden”. Если задано значение “disabled”, вкладку нельзя выбрать. Если задано значение “hidden”, вкладка не отображается. |
sticky | Указывает, как дочернее окно расположено в области панели. Значение — строка, содержащая ноль или более символов “n”, “s”, “e” или “w”. Каждая буква обозначает сторону (север, юг, восток или запад), к которой будет прижато дочернее окно, согласно менеджеру геометрии |
padding | Указывает размер дополнительного пространства между блокнотом и этой панелью. Синтаксис такой же, как у параметра padding этого виджета. |
text | Задает текст, отображаемый на вкладке. |
image | Задает изображение, отображаемое на вкладке. См. описание параметра image в разделе |
compound | Указывает, как отображать изображение относительно текста, если заданы оба параметра — text и image. Допустимые значения см. в разделе Параметры метки. |
underline | Указывает индекс (начиная с 0) символа текстовой строки, который нужно подчеркнуть. Подчеркнутый символ используется для активации с помощью мнемоники, если вызван метод |
Идентификаторы вкладок
Аргумент tab_id, используемый в нескольких методах ttk.Notebook, может принимать любое из следующих значений:
- Целое число от нуля до количества вкладок
- Имя дочернего окна
- Позиционное обозначение вида “@x,y”, указывающее на вкладку
- Строка “current”, указывающая на выбранную в данный момент вкладку
- Строка “end”, возвращающая количество вкладок (допустима только для
Notebook.index())
Виртуальные события
После выбора новой вкладки этот виджет генерирует виртуальное событие <<NotebookTabChanged>>.
ttk.Notebook
-
class tkinter.ttk.Notebook -
-
add(child, **kw) -
Добавляет новую вкладку в блокнот.
Если окно уже управляется блокнотом, но скрыто, оно восстанавливается на прежнем месте.
Список доступных параметров см. в разделе Параметры вкладок.
-
forget(tab_id) -
Удаляет вкладку, заданную параметром tab_id, отменяя отображение связанного с ней окна и снимая его с управления.
Этот метод замещает унаследованный менеджер геометрии
forget(); используйтеpack_forget(),grid_forget()илиplace_forget(), чтобы удалить сам виджет из менеджера.
-
hide(tab_id) -
Скрывает вкладку, заданную параметром tab_id.
Вкладка не будет отображаться, но связанное с ней окно останется под управлением блокнота, а его конфигурация будет сохранена. Скрытые вкладки можно восстановить с помощью команды
add().
-
identify(x, y) -
Возвращает имя элемента вкладки в позиции x, y или пустую строку, если такого элемента нет.
-
index(tab_id) -
Возвращает числовой индекс вкладки, заданной параметром tab_id, или общее количество вкладок, если tab_id — строка “end”.
-
insert(pos, child, **kw) -
Вставляет панель в указанную позицию.
pos — это строка “end”, целочисленный индекс или имя дочернего окна, находящегося под управлением блокнота. Если child уже управляется блокнотом, он перемещается в указанную позицию.
Список доступных параметров см. в разделе Параметры вкладок.
-
select(tab_id=None) -
Выбирает вкладку, заданную параметром tab_id.
Связанное с ней дочернее окно отобразится, а ранее выбранное окно (если оно другое) перестанет отображаться. Если tab_id не указан, возвращается имя виджета текущей выбранной панели.
-
tab(tab_id, option=None, **kw) -
Запрашивает или изменяет параметры указанной вкладки tab_id.
Если параметр kw не указан, возвращается словарь значений параметров вкладки. Если указан параметр option, возвращается его значение. В противном случае параметры устанавливаются в соответствующие значения.
-
tabs() -
Возвращает кортеж окон, управляемых блокнотом.
-
enable_traversal() -
Включает переход между вкладками с помощью клавиатуры для окна верхнего уровня, содержащего этот блокнот.
При этом для окна верхнего уровня, содержащего блокнот, добавляются следующие привязки:
- Control-Tab: выбирает вкладку, следующую за текущей.
- Shift-Control-Tab: выбирает вкладку, предшествующую текущей.
- Alt-K: если K — мнемонический (подчеркнутый) символ любой вкладки, выбирает эту вкладку.
Можно включить переход между вкладками для нескольких блокнотов в одном окне верхнего уровня, в том числе для вложенных блокнотов. Однако переход работает правильно, только если все панели являются непосредственными дочерними элементами блокнота.
-
Индикатор выполнения
Виджет ttk.Progressbar показывает состояние длительной операции. Он может работать в двух режимах: 1) определенном, который показывает объем выполненной работы относительно общего объема, и 2) неопределенном, в котором отображается анимация, сообщающая пользователю о ходе работы.
Параметры
Этот виджет поддерживает следующие специфические параметры:
Параметр | Описание |
|---|---|
orient | Одно из значений: “horizontal” или “vertical”. Указывает ориентацию индикатора выполнения. |
length | Указывает длину длинной оси индикатора выполнения (ширину при горизонтальной ориентации и высоту при вертикальной). |
mode | Одно из значений: “determinate” или “indeterminate”. |
maximum | Число, задающее максимальное значение. По умолчанию равно 100. |
value | Текущее значение индикатора выполнения. В режиме “determinate” оно обозначает объем выполненной работы. В режиме “indeterminate” оно интерпретируется по модулю maximum; то есть индикатор выполнения завершает один «цикл», когда его значение увеличивается на maximum. |
variable | Имя переменной, связанной со значением параметра. Если задано, значение индикатора выполнения автоматически устанавливается равным значению этой переменной при каждом его изменении. |
phase | Параметр только для чтения. Виджет периодически увеличивает его значение, если оно больше 0 и в определенном режиме меньше maximum. Текущая тема может использовать этот параметр для дополнительных эффектов анимации. |
ttk.Progressbar
-
class tkinter.ttk.Progressbar -
-
start(interval=None) -
Запускает режим автоматического увеличения: планирует повторяющееся событие таймера, вызывающее
Progressbar.step()каждые interval миллисекунд. Если параметр interval не указан, по умолчанию используется значение 50 миллисекунд.
-
step(amount=None) -
Увеличивает значение индикатора выполнения на amount.
Если параметр amount не указан, по умолчанию используется значение 1.0.
-
stop() -
Останавливает режим автоматического увеличения: отменяет все повторяющиеся события таймера, запущенные методом
Progressbar.start()для этого индикатора выполнения.
-
Разделитель
Виджет ttk.Separator отображает горизонтальную или вертикальную разделительную линию.
Помимо методов, унаследованных от ttk.Widget, у него нет других методов.
Параметры
Этот виджет поддерживает следующий специфический параметр:
Параметр | Описание |
|---|---|
orient | Одно из значений: “horizontal” или “vertical”. Указывает ориентацию разделителя. |
Маркер изменения размера
Виджет ttk.Sizegrip (также известный как маркер изменения размера) позволяет пользователю изменить размер содержащего его окна верхнего уровня, нажав на маркер и перетащив его.
У этого виджета нет собственных параметров или методов, кроме унаследованных от ttk.Widget.
Примечания для отдельных платформ
- В macOS окна верхнего уровня по умолчанию автоматически включают встроенный маркер изменения размера. Добавление виджета
Sizegripне повредит, поскольку встроенный маркер просто закроет виджет.
Известные ошибки
- Если положение содержащего окна верхнего уровня задано относительно правого или нижнего края экрана (например, ….), виджет
Sizegripне сможет изменить размер окна. - Этот виджет поддерживает изменение размера только в направлении «юго-восток».
Иерархическое представление
Виджет ttk.Treeview отображает иерархическую коллекцию элементов. У каждого элемента есть текстовая метка, необязательное изображение и необязательный список значений данных. Значения данных отображаются в последовательных столбцах после метки дерева.
Порядок отображения значений данных можно настроить с помощью параметра виджета displaycolumns. Виджет дерева также может отображать заголовки столбцов. Доступ к столбцам можно получить по номеру или по символьным именам, перечисленным в параметре виджета columns. См. раздел Идентификаторы столбцов.
Каждый элемент имеет уникальное имя. Если вызывающий код не указал идентификаторы элементов, виджет создаст их самостоятельно. Существует особый корневой элемент с именем {}. Сам корневой элемент не отображается; его дочерние элементы находятся на верхнем уровне иерархии.
У каждого элемента также есть список тегов, которые можно использовать для привязки событий к отдельным элементам и управления их внешним видом.
Виджет Treeview поддерживает горизонтальную и вертикальную прокрутку в соответствии с параметрами, описанными в разделе Параметры прокручиваемого виджета, и методами Treeview.xview() и Treeview.yview().
Параметры
Для этого виджета доступны следующие специальные параметры:
Параметр | Описание |
|---|---|
columns | Список идентификаторов столбцов, задающий их количество и имена. |
displaycolumns | Список идентификаторов столбцов (символьных или целочисленных индексов), задающий, какие столбцы данных отображаются и в каком порядке, либо строка “#all”. |
height | Задает количество строк, которые должны быть видны. Примечание: запрашиваемая ширина определяется суммой ширин столбцов. |
padding | Задает внутренние отступы виджета. Отступы представляют собой список, содержащий до четырех значений длины. |
selectmode |
Управляет выбором, выполняемым встроенными привязками класса. Возможные значения: “extended”, “browse” или “none”. Если задано значение “extended” (по умолчанию), можно выбрать несколько элементов. При значении “browse” одновременно можно выбрать только один элемент. При значении “none” выбор не изменяется. Обратите внимание, что код приложения и привязки тегов могут задавать выбор любым способом независимо от значения этого параметра. |
show |
Список, содержащий ноль или более следующих значений, которые задают отображаемые элементы дерева.
По умолчанию задано “tree headings”, то есть отображаются все элементы. Примечание: Столбец #0 всегда обозначает столбец дерева, даже если не указано show=”tree”. |
Примечание
В Tk 9.0 добавлено несколько возможностей Treeview. Для параметра selectmode добавлены значения "single" и "multiple"; появились новые параметры виджета selecttype (выбор "item" или "cell"), striped (строки с чередующейся заливкой) и titlecolumns / titleitems (столбцы или строки, закрепленные при прокрутке); добавлен параметр столбца separator; у элементов появился параметр hidden. В Tk 9.1 добавлены параметры rowheight и headingheight.
Параметры элемента
Для элементов в командах виджета insert и item можно задать следующие параметры.
Параметр | Описание |
|---|---|
text | Текстовая метка, отображаемая для элемента. |
image | Изображение Tk, отображаемое слева от метки. |
values |
Список значений, связанных с элементом. У каждого элемента должно быть столько же значений, сколько столбцов задано параметром виджета columns. Если значений меньше, чем столбцов, оставшиеся значения считаются пустыми. Если значений больше, чем столбцов, лишние значения игнорируются. |
open | Значение |
tags | Список тегов, связанных с этим элементом. |
Параметры тега
Для тегов можно задать следующие параметры:
Параметр | Описание |
|---|---|
foreground | Задает цвет текста. |
background | Задает цвет фона ячейки или элемента. |
font | Задает шрифт для отображения текста. |
image | Задает изображение элемента, если параметр изображения элемента не задан. |
Идентификаторы столбцов
Идентификаторы столбцов могут иметь одну из следующих форм:
- Символьное имя из списка параметра columns.
- Целое число n, задающее n-й столбец данных.
- Строка вида #n, где n — целое число, задающее n-й отображаемый столбец.
Примечания:
- Значения параметра элемента могут отображаться в порядке, отличном от порядка их хранения.
- Столбец #0 всегда обозначает столбец дерева, даже если не указано show=”tree”.
Номер столбца данных — это индекс в списке значений параметра элемента; номер отображаемого столбца — это номер столбца дерева, в котором отображаются значения. Метки дерева отображаются в столбце #0. Если параметр displaycolumns не задан, столбец данных n отображается в столбце #n+1. Еще раз: столбец #0 всегда обозначает столбец дерева.
Виртуальные события
Виджет Treeview генерирует следующие виртуальные события.
Событие | Описание |
|---|---|
<<TreeviewSelect>> | Генерируется при каждом изменении выбора. |
<<TreeviewOpen>> | Генерируется непосредственно перед установкой для элемента фокуса значения open=True. |
<<TreeviewClose>> | Генерируется сразу после установки для элемента фокуса значения open=False. |
Методы Treeview.focus() и Treeview.selection() позволяют определить затронутый элемент или элементы.
ttk.Treeview
-
class tkinter.ttk.Treeview -
-
bbox(item, column=None) -
Возвращает ограничивающий прямоугольник указанного item относительно окна виджета treeview в виде (x, y, width, height).
Если указан column, возвращает ограничивающий прямоугольник этой ячейки. Если item не виден (то есть является потомком закрытого элемента или прокручен за пределы экрана), возвращает пустую строку.
Этот метод переопределяет унаследованный
Misc.bbox(); для получения ограничивающего прямоугольника сетки используйтеgrid_bbox().
-
get_children(item=None) -
Возвращает кортеж дочерних элементов item.
Если item не указан, возвращает дочерние элементы корневого элемента.
-
set_children(item, *newchildren) -
Заменяет дочерние элементы item элементами newchildren.
Дочерние элементы item, отсутствующие в newchildren, отсоединяются от дерева. Ни один элемент из newchildren не может быть предком item. Обратите внимание: если не указать newchildren, дочерние элементы item будут отсоединены.
-
column(column, option=None, **kw) -
Запрашивает или изменяет параметры указанного column.
Если kw не задан, возвращает словарь значений параметров столбца. Если указан option, возвращает значение этого option. В противном случае задает параметры соответствующими значениями.
Допустимые параметры и значения:
- id
-
Возвращает имя столбца. Этот параметр доступен только для чтения.
- anchor: одно из стандартных значений Tk для anchor.
-
Задает выравнивание текста в этом столбце относительно ячейки.
- minwidth: ширина
-
Минимальная ширина столбца в пикселях. При изменении размера виджета или перетаскивании столбца пользователем виджет treeview не уменьшит ширину столбца ниже значения, заданного этим параметром.
-
separator: True/False -
Указывает, следует ли рисовать разделитель справа от столбца.
-
stretch: True/False -
Указывает, следует ли изменять ширину столбца при изменении размера виджета.
- width: ширина
-
Ширина столбца в пикселях.
Чтобы настроить столбец дерева, вызовите этот метод с column = “#0”.
-
delete(*items) -
Удаляет все указанные items и всех их потомков.
Корневой элемент удалить нельзя.
-
detach(*items) -
Отсоединяет от дерева все указанные items.
Элементы и все их потомки остаются в памяти и могут быть повторно вставлены в другое место дерева, но отображаться не будут.
Корневой элемент нельзя отсоединить.
-
exists(item) -
Возвращает
True, если указанный item присутствует в дереве, иFalseв противном случае.
-
focus(item=None) -
Если указан item, устанавливает элементом фокуса item. В противном случае возвращает текущий элемент фокуса или ‘’ если такого элемента нет.
Этот метод переопределяет унаследованный
Misc.focus(); чтобы перевести фокус на сам виджет, используйтеfocus_set().
-
heading(column, option=None, **kw) -
Запрашивает или изменяет параметры заголовка указанного column.
Если kw не задан, возвращает словарь значений параметров заголовка. Если указан option, возвращает значение этого option. В противном случае задает параметры соответствующими значениями.
Допустимые параметры и значения:
- text: текст
-
Текст, отображаемый в заголовке столбца.
- image: imageName
-
Задает изображение, отображаемое справа от заголовка столбца.
- anchor: anchor
-
Задает выравнивание текста заголовка. Допустимы стандартные значения Tk для anchor.
- command: callback
-
Функция обратного вызова, вызываемая при нажатии на метку заголовка.
Чтобы настроить заголовок столбца дерева, вызовите этот метод с column = “#0”.
-
identify(component, x, y) -
Возвращает описание указанного component в точке с координатами x и y или пустую строку, если в этой позиции такого component нет.
-
identify_row(y) -
Возвращает идентификатор элемента, расположенного на позиции y.
-
identify_column(x) -
Возвращает идентификатор отображаемого столбца ячейки, расположенной на позиции x.
Идентификатор столбца дерева — #0.
-
identify_region(x, y) -
Возвращает одно из следующих значений:
область
значение
heading
Область заголовков дерева.
separator
Промежуток между заголовками двух столбцов.
tree
Область дерева.
cell
Ячейка данных.
Доступно начиная с Tk 8.6.
-
identify_element(x, y) -
Возвращает элемент в позиции x, y.
Доступно начиная с Tk 8.6.
-
index(item) -
Возвращает целочисленный индекс item в списке дочерних элементов родительского элемента.
-
insert(parent, index, iid=None, **kw) -
Создает новый элемент и возвращает его идентификатор.
parent — идентификатор родительского элемента или пустая строка, если создается новый элемент верхнего уровня. index — целое число или значение “end”, задающее место вставки нового элемента в списке дочерних элементов родителя. Если index меньше или равен нулю, новый узел вставляется в начало; если index больше или равен текущему количеству дочерних элементов, он вставляется в конец. Если указан iid, он используется как идентификатор элемента; iid не должен уже существовать в дереве. В противном случае создается новый уникальный идентификатор.
Список доступных параметров см. в разделе Параметры элемента.
-
item(item, option=None, **kw) -
Запрашивает или изменяет параметры указанного item.
Если параметры не указаны, возвращается словарь параметров и значений для элемента. Если указан option, возвращается значение этого параметра. В противном случае параметры устанавливаются в соответствующие значения, заданные в kw.
-
move(item, parent, index) -
Перемещает item на позицию index в списке дочерних элементов parent.
Нельзя переместить элемент в одного из его потомков. Если index меньше или равен нулю, item перемещается в начало; если он больше или равен количеству дочерних элементов, элемент перемещается в конец. Если item был отсоединен, он присоединяется снова.
reattach()— это псевдонимmove().
-
next(item) -
Возвращает идентификатор следующего соседнего элемента item или ‘’ если item — последний дочерний элемент своего родителя.
-
parent(item) -
Возвращает идентификатор родителя item или ‘’ если item находится на верхнем уровне иерархии.
-
prev(item) -
Возвращает идентификатор предыдущего соседнего элемента item или ‘’ если item — первый дочерний элемент своего родителя.
-
see(item) -
Гарантирует, что item будет виден.
Устанавливает для параметра open всех предков item значение
Trueи при необходимости прокручивает виджет так, чтобы item оказался в видимой области дерева.
-
selection() -
Возвращает кортеж выбранных элементов.
Изменено в версии 3.8:
selection()больше не принимает аргументы. Для изменения состояния выбора используйте следующие методы выбора.
-
selection_set(*items) -
Задает items в качестве нового выбора.
Изменено в версии 3.6: items можно передавать отдельными аргументами, а не только одним кортежем.
-
selection_add(*items) -
Добавляет items к выбранным элементам.
Изменено в версии 3.6: items можно передавать отдельными аргументами, а не только одним кортежем.
-
selection_remove(*items) -
Удаляет items из выбранных элементов.
Изменено в версии 3.6: items можно передавать отдельными аргументами, а не только одним кортежем.
-
selection_toggle(*items) -
Переключает состояние выбора каждого элемента из items.
Изменено в версии 3.6: items можно передавать отдельными аргументами, а не только одним кортежем.
-
set(item, column=None, value=None) -
С одним аргументом возвращает словарь пар «столбец/значение» для указанного item. С двумя аргументами возвращает текущее значение указанного column. С тремя аргументами задает для указанного column элемента item указанное значение value.
-
tag_bind(tagname, sequence=None, callback=None) -
Привязывает функцию обратного вызова к тегу tagname для указанной последовательности событий sequence. При передаче события элементу вызываются функции обратного вызова для каждого тега из параметра tags этого элемента.
-
tag_configure(tagname, option=None, **kw) -
Запрашивает или изменяет параметры указанного tagname.
Если kw не задан, возвращается словарь значений параметров для tagname. Если указан option, возвращается значение этого option для указанного tagname. В противном случае для указанного tagname задаются соответствующие значения параметров.
-
tag_has(tagname, item=None) -
Если указан item, возвращает
True, если указанный item имеет тег tagname, иFalseв противном случае. Если item не указан, возвращает кортеж всех элементов с указанным тегом.Доступно начиная с Tk 8.6
-
xview(*args) -
Запрашивает или изменяет горизонтальное положение содержимого treeview.
-
yview(*args) -
Запрашивает или изменяет вертикальное положение содержимого treeview.
-
Стилизация Ttk
Каждому виджету в ttk назначается стиль, который определяет набор элементов, составляющих виджет, и способ их расположения, а также динамические и стандартные значения параметров элементов. По умолчанию имя стиля совпадает с именем класса виджета, но его можно переопределить с помощью параметра стиля виджета. Если вы не знаете имя класса виджета, используйте метод Misc.winfo_class (somewidget.winfo_class()).
См. также
- Введение в движок тем Tk
-
Страница руководства
ttk::introобъясняет, как работает движок тем. - Набор виджетов Tile
-
Статья Джо Инглиша за 2004 год, в которой представлен движок тем (тогда это было отдельное расширение Tile), содержит схемы, показывающие, как элементы и макеты формируют внешний вид виджета.
-
class tkinter.ttk.Style -
Этот класс используется для управления базой данных стилей.
-
configure(style, query_opt=None, **kw) -
Запрашивает или задаёт стандартное значение указанного параметра или параметров в style.
Каждый ключ в kw — это параметр, а каждое значение — строка, определяющая значение этого параметра.
Например, чтобы изменить все стандартные кнопки на плоские кнопки с некоторыми отступами и другим цветом фона:
from tkinter import ttk import tkinter root = tkinter.Tk() ttk.Style().configure("TButton", padding=6, relief="flat", background="#ccc") btn = ttk.Button(text="Sample") btn.pack() root.mainloop()
-
map(style, query_opt=None, **kw) -
Запрашивает или задаёт динамические значения указанного параметра или параметров в style.
Каждый ключ в kw — это параметр, а каждое значение должно быть списком или кортежем (как правило), содержащим спецификации состояний, сгруппированные в кортежи, списки или каким-либо иным способом. Спецификация состояния состоит из одного или нескольких состояний, за которыми следует значение.
Пример поможет лучше понять это:
import tkinter from tkinter import ttk root = tkinter.Tk() style = ttk.Style() style.map("C.TButton", foreground=[('pressed', 'red'), ('active', 'blue')], background=[('pressed', '!disabled', 'black'), ('active', 'white')] ) colored_btn = ttk.Button(text="Test", style="C.TButton").pack() root.mainloop()Обратите внимание, что порядок последовательностей (состояния, значение) для параметра имеет значение. Например, если изменить порядок на
[('active', 'blue'), ('pressed', 'red')]в параметре foreground, при активном состоянии или состоянии нажатия цвет переднего плана станет синим.При вызове для запроса карты (без указания задаваемых значений) возвращается словарь, сопоставляющий каждому параметру его список спецификаций состояний.
Изменено в версии 3.10: Исправлено возвращаемое при запросе карты значение.
-
lookup(style, option, state=None, default=None) -
Возвращает значение, указанное для option в style.
Если указан state, ожидается последовательность из одного или нескольких состояний. Если задан аргумент default, он используется в качестве резервного значения, если спецификация для параметра не найдена.
Чтобы проверить, какой шрифт по умолчанию использует Button:
from tkinter import ttk print(ttk.Style().lookup("TButton", "font"))
-
layout(style, layoutspec=None) -
Определяет макет виджета для заданного style. Если layoutspec не указан, возвращает спецификацию макета для заданного стиля.
Если указан layoutspec, ожидается список или другой тип последовательности (кроме строк), каждый элемент которой должен быть кортежем: первый элемент — имя макета, а второй должен иметь формат, описанный в разделе Макеты.
Чтобы понять формат, рассмотрите следующий пример (он не предназначен для выполнения полезных действий):
from tkinter import ttk import tkinter root = tkinter.Tk() style = ttk.Style() style.layout("TMenubutton", [ ("Menubutton.background", None), ("Menubutton.button", {"children": [("Menubutton.focus", {"children": [("Menubutton.padding", {"children": [("Menubutton.label", {"side": "left", "expand": 1})] })] })] }), ]) mbtn = ttk.Menubutton(text='Text') mbtn.pack() root.mainloop()
-
element_create(elementname, etype, *args, **kw) -
Создаёт новый элемент в текущей теме заданного типа etype, которым может быть «image», «from» или «vsapi». Последний доступен только в Tk 8.6 для Windows.
Если используется «image», аргумент args должен содержать имя изображения по умолчанию, за которым следуют пары спецификация состояния/значение (это спецификация изображения), а kw может содержать следующие параметры:
- border=padding
-
padding — это список, содержащий до четырёх целых чисел, которые задают соответственно левую, верхнюю, правую и нижнюю границы.
- height=height
-
Задаёт минимальную высоту элемента. Если значение меньше нуля, в качестве значения по умолчанию используется высота базового изображения.
- padding=padding
-
Задаёт внутренние отступы элемента. Если значение не указано, по умолчанию используется значение border.
- sticky=spec
-
Задаёт расположение изображения внутри итоговой области. spec содержит ноль или более символов «n», «s», «w» или «e».
- width=width
-
Задаёт минимальную ширину элемента. Если значение меньше нуля, в качестве значения по умолчанию используется ширина базового изображения.
Пример:
img1 = tkinter.PhotoImage(master=root, file='button.png') img1 = tkinter.PhotoImage(master=root, file='button-pressed.png') img1 = tkinter.PhotoImage(master=root, file='button-active.png') style = ttk.Style(root) style.element_create('Button.button', 'image', img1, ('pressed', img2), ('active', img3), border=(2, 4), sticky='we')Если в качестве значения etype используется «from»,
element_create()клонирует существующий элемент. Ожидается, что args содержит имя темы, из которой будет клонирован элемент, и, при необходимости, элемент, который нужно клонировать. Если элемент для клонирования не указан, будет использован пустой элемент. Аргумент kw отбрасывается.Пример:
style = ttk.Style(root) style.element_create('plain.background', 'from', 'default')Если в качестве значения etype используется «vsapi»,
element_create()создаёт новый элемент в текущей теме, визуальный вид которого отрисовывается с помощью API визуальных стилей Microsoft, отвечающего за стили оформления в Windows XP и Vista. Ожидается, что args содержит класс и часть визуальных стилей, указанные в документации Microsoft, за которыми может следовать последовательность кортежей из состояний ttk и соответствующих значений состояния API визуальных стилей. Аргумент kw может содержать следующие параметры:- padding=padding
-
Задаёт внутренние отступы элемента. padding — это список, содержащий до четырёх целых чисел, которые задают соответственно левый, верхний, правый и нижний отступы. Если указано меньше четырёх элементов, нижний отступ по умолчанию равен верхнему, правый — левому, а верхний — левому. Иными словами, список из трёх чисел задаёт левый, вертикальный и правый отступы; список из двух чисел задаёт горизонтальный и вертикальный отступы; одно число задаёт одинаковые отступы со всех сторон виджета. Этот параметр нельзя сочетать с другими параметрами.
- margins=padding
-
Задаёт внешние отступы элемента. padding — это список, содержащий до четырёх целых чисел, которые задают соответственно левый, верхний, правый и нижний отступы. Этот параметр нельзя сочетать с другими параметрами.
- width=width
-
Задаёт ширину элемента. Если этот параметр задан, API визуальных стилей не будет запрашиваться для получения рекомендуемого размера или части. В этом случае также следует задать height. Параметры width и height нельзя сочетать с параметрами padding или margins.
- height=height
-
Задаёт высоту элемента. См. комментарии к параметру width.
Пример:
style = ttk.Style(root) style.element_create('pin', 'vsapi', 'EXPLORERBAR', 3, [ ('pressed', '!selected', 3), ('active', '!selected', 2), ('pressed', 'selected', 6), ('active', 'selected', 5), ('selected', 4), ('', 1)]) style.layout('Explorer.Pin', [('Explorer.Pin.pin', {'sticky': 'news'})]) pin = ttk.Checkbutton(style='Explorer.Pin') pin.pack(expand=True, fill='both')Изменено в версии 3.13: Добавлена поддержка фабрики элементов «vsapi».
-
element_names() -
Возвращает кортеж элементов, определённых в текущей теме.
-
element_options(elementname) -
Возвращает кортеж параметров элемента elementname.
-
theme_create(themename, parent=None, settings=None) -
Создаёт новую тему.
Если themename уже существует, возникает ошибка. Если указан parent, новая тема наследует стили, элементы и макеты родительской темы. Если задан settings, ожидается, что он будет иметь тот же синтаксис, что и
theme_settings().
-
theme_settings(themename, settings) -
Временно задаёт текущей тему themename, применяет указанные settings, а затем восстанавливает предыдущую тему.
Каждый ключ в settings — это стиль, а каждое значение может содержать ключи ‘configure’, ‘map’, ‘layout’ и ‘element create’; предполагается, что их формат совпадает с форматом, указанным в методах
Style.configure(),Style.map(),Style.layout()иStyle.element_create()соответственно.Например, немного изменим Combobox для стандартной темы:
from tkinter import ttk import tkinter root = tkinter.Tk() style = ttk.Style() style.theme_settings("default", { "TCombobox": { "configure": {"padding": 5}, "map": { "background": [("active", "green2"), ("!disabled", "green4")], "fieldbackground": [("!disabled", "green3")], "foreground": [("focus", "OliveDrab1"), ("!disabled", "OliveDrab2")] } } }) combo = ttk.Combobox().pack() root.mainloop()
-
theme_names() -
Возвращает кортеж всех известных тем.
-
theme_use(themename=None) -
Если themename не задан, возвращает используемую тему. В противном случае задаёт текущей тему themename, обновляет все виджеты и генерирует событие <<ThemeChanged>>.
-
Макеты
Макет может быть просто None, если он не принимает параметров, или словарём параметров, определяющих расположение элемента. Механизм макетов использует упрощённую версию менеджера геометрии pack: каждому элементу выделяется область в исходной полости.
Допустимые параметры и значения:
- side: whichside
-
Задаёт сторону полости, к которой следует поместить элемент: top, right, bottom или left. Если параметр не задан, элемент занимает всю полость.
- sticky: nswe
-
Задаёт расположение элемента внутри выделенной ему области.
- unit: 0 or 1
-
Если задано значение 1, элемент и все его потомки рассматриваются как единый элемент при выполнении таких операций, как
Widget.identify(). Это используется, например, для ползунков полос прокрутки с ручками. - children: [sublayout… ]
-
Задаёт список элементов, размещаемых внутри данного элемента. Каждый элемент — это кортеж (или последовательность другого типа), где первый элемент — имя макета, а второй — макет.
Дополнительные виджеты
Следующие тематические виджеты дополняют набор виджетов tkinter.ttk. Каждый из них является тематическим аналогом классического виджета tkinter с таким же именем и наследует общие методы Widget.
-
class tkinter.ttk.Button(master=None, **kw) -
Виджет Ttk
Buttonотображает текстовую метку и/или изображение и выполняет команду при нажатии. Это тематический аналогtkinter.Button; он наследует общие методы виджетов отWidget.-
invoke() -
Вызывает команду, связанную с кнопкой, и возвращает её результат.
-
-
class tkinter.ttk.Checkbutton(master=None, **kw) -
Виджет Ttk
Checkbuttonиспользуется для управления логической переменной, переключаемой между включённым и выключенным состояниями. Это тематический аналогtkinter.Checkbutton; он наследует общие методы виджетов отWidget.-
invoke() -
Переключает кнопку между выбранным и невыбранным состояниями, вызывает связанную с кнопкой команду и возвращает её результат.
-
-
class tkinter.ttk.Entry(master=None, widget=None, **kw) -
Виджет Ttk
Entryотображает однострочный текст и позволяет пользователю редактировать его. Это тематический аналогtkinter.Entry; он наследует общие методы виджетов отWidget, а также методы редактирования отtkinter.Entry.-
bbox(index) -
Возвращает кортеж
(x, y, width, height), задающий ограничивающий прямоугольник символа с указанным index.Этот метод переопределяет унаследованный
Misc.bbox(); для получения ограничивающего прямоугольника сетки используйтеgrid_bbox().
-
identify(x, y) -
Возвращает имя элемента под точкой с координатами x и y или пустую строку, если в этом месте нет элемента.
-
validate() -
Принудительно выполняет проверку поля ввода и возвращает
True, если проверка прошла успешно, иFalseв противном случае.
-
-
class tkinter.ttk.Frame(master=None, **kw) -
Виджет Ttk
Frame— это контейнер, предназначенный для группировки и размещения других виджетов. Это тематический аналогtkinter.Frame; он наследует общие методы виджетов отWidget.
-
class tkinter.ttk.Label(master=None, **kw) -
Виджет Ttk
Labelотображает текстовую метку и/или изображение. Это тематический аналогtkinter.Label; он наследует общие методы виджетов отWidget.
-
class tkinter.ttk.Labelframe(master=None, **kw) -
Виджет Ttk
Labelframe— это контейнер, который обводит содержимое рамкой и заголовком. Это тематический аналогtkinter.LabelFrame; он наследует общие методы виджетов отWidget.
-
class tkinter.ttk.Menubutton(master=None, **kw) -
Виджет Ttk
Menubuttonотображает текстовую метку и/или изображение и открывает меню при нажатии. Это тематический аналогtkinter.Menubutton; он наследует общие методы виджетов отWidget.
-
class tkinter.ttk.OptionMenu(master, variable, default=None, *values, **kwargs) -
Виджет Ttk
OptionMenu— этоMenubutton, который открывает меню взаимно исключающих вариантов. variable — это переменная, отслеживающая выбранное значение; default — значение, задаваемое изначально; values — элементы, отображаемые в меню. Аргумент-ключевое слово command можно использовать, чтобы задать вызываемый объект, который будет вызываться с выбранным значением при каждом изменении выбора; аргумент-ключевое слово style задаёт стиль основной кнопки меню; аргумент-ключевое слово direction задаёт расположение меню относительно кнопки меню (одно из значений'above','below'(по умолчанию),'left','right'или'flush'); аргумент-ключевое слово name задаёт имя виджета Tk.-
Заменяет элементы меню на values. Если задан default, он также устанавливается в качестве текущего значения variable.
-
destroy() -
Уничтожает этот виджет и связанное с ним меню.
Изменено в версии 3.14: Добавлена поддержка аргумента-ключевого слова name.
-
-
class tkinter.ttk.Panedwindow(master=None, **kw) -
Виджет Ttk
Panedwindowотображает несколько подокон, расположенных вертикально или горизонтально. Пользователь может изменять относительные размеры подокон, перетаскивая разделитель между панелями. Это тематический аналогtkinter.PanedWindow; он наследует общие методы виджетов отWidget, а также методыadd()иpanes()отtkinter.PanedWindow.-
insert(pos, child, **kw) -
Вставляет панель, содержащую child, в позицию pos. pos может быть строкой
'end', целочисленным индексом или именем управляемого подокна. Если панель уже управляется панельным окном, она перемещается в указанную позицию. Любые аргументы-ключевые слова задают параметры панели.
-
forget(child) -
Удаляет child из панелей. В качестве child можно указать целочисленный индекс или имя управляемого подокна.
Этот метод переопределяет унаследованный метод менеджера геометрии
forget(); используйтеpack_forget(),grid_forget()илиplace_forget(), чтобы удалить сам виджет из менеджера.
-
pane(pane, option=None, **kw) -
Запрашивает или изменяет параметры указанной pane, где pane — это целочисленный индекс или имя управляемого подокна. Если аргументы не заданы, возвращает словарь значений параметров панели. Если указан option, возвращает значение этого параметра. В противном случае задаёт переданные в виде аргументов-ключевых слов параметры соответствующими значениями.
-
sashpos(index, newpos=None) -
Если задан newpos, задаёт позицию разделителя с номером index и возвращает его новую позицию. Это может привести к изменению позиций соседних разделителей, чтобы обеспечить их монотонный рост; позиции также ограничены диапазоном от 0 до общего размера виджета. Если newpos не задан, возвращает текущую позицию разделителя.
-
-
class tkinter.ttk.Radiobutton(master=None, **kw) -
Виджет Ttk
Radiobuttonиспользуется в составе группы для управления одной общей переменной посредством выбора одного из нескольких взаимоисключающих значений. Это тематический аналогtkinter.Radiobutton; он наследует общие методы виджетов отWidget.-
invoke() -
Задаёт переменной параметра значение кнопки, выбирает кнопку, вызывает связанную с ней команду и возвращает результат.
-
-
class tkinter.ttk.Scale(master=None, **kw) -
Виджет Ttk
Scaleотображает ползунок, позволяющий пользователю выбрать числовое значение из диапазона, перемещая ползунок вдоль желоба. Это тематический аналогtkinter.Scale; он наследует общие методы виджетов отWidget.-
configure(cnf=None, **kw) -
Изменяет параметры виджета или запрашивает их, как
Widget.configure. Кроме того, этот метод ограничивает значенияfromиto, чтобы текущее значение оставалось в заданном ими диапазоне.Изменено в версии 3.9: Теперь возвращает значение конфигурации, как
Widget.configure.
-
get(x=None, y=None) -
Возвращает текущее значение шкалы. Если заданы x и y, вместо этого возвращает значение, соответствующее координатам пикселя x, y.
-
-
class tkinter.ttk.Scrollbar(master=None, **kw) -
Виджет Ttk
Scrollbarуправляет областью просмотра связанного прокручиваемого виджета, напримерTreeview,Entryилиtkinter.Text. Это тематический аналогtkinter.Scrollbar; он наследует общие методы виджетов отWidget, а также методыset()иget()отtkinter.Scrollbar.
-
class tkinter.ttk.Separator(master=None, **kw) -
Виджет Ttk
Separatorотображает горизонтальную или вертикальную линию-разделитель. Он не имеет прямого аналога вtkinterи наследует общие методы виджетов отWidget.
-
class tkinter.ttk.Sizegrip(master=None, **kw) -
Виджет Ttk
Sizegripотображает маркер, позволяющий пользователю изменять размер содержащего его окна верхнего уровня, нажав на маркер и перетащив его; обычно он располагается в правом нижнем углу. Он не имеет прямого аналога вtkinterи наследует общие методы виджетов отWidget.
-
class tkinter.ttk.LabeledScale(master=None, variable=None, from_=0, to=10, **kw) -
Frame, содержащийScaleиLabel, отображающий текущее значение шкалы. variable — этоIntVar, отслеживаемая шкалой (если она не задана, создаётся новая), а from_ и to задают диапазон шкалы.-
destroy() -
Уничтожает этот виджет и удаляет функцию обратного вызова трассировки, зарегистрированную для связанной переменной.
-
-
class tkinter.ttk.LabelFrame(master=None, **kw) -
Псевдоним
Labelframe, сохранённый для совместимости имён сtkinter.LabelFrame.
-
class tkinter.ttk.PanedWindow(master=None, **kw) -
Псевдоним
Panedwindow, сохранённый для совместимости имён сtkinter.PanedWindow.
© 2001 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/3.14/library/tkinter.ttk.html