Spec-Zone.ru › Python 3.14

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.

Обычно этому параметру присваивается метод Scrollbar.set некоторой полосы прокрутки. В результате полоса прокрутки обновляется при каждом изменении отображения в окне.

yscrollcommand

Используется для взаимодействия с вертикальными полосами прокрутки. Дополнительные сведения см. выше.

Параметры меток

Следующие параметры поддерживаются метками, кнопками и другими виджетами, похожими на кнопки.

Параметр

Описание

text

Задает текстовую строку, отображаемую внутри виджета.

textvariable

Задает имя переменной, значение которой будет использоваться вместо параметра text.

underline

Если задан, указывает индекс (начиная с 0) символа текстовой строки, который нужно подчеркнуть. Подчеркнутый символ используется для активации с помощью мнемоники.

image

Задает отображаемое изображение. Это список из одного или нескольких элементов. Первый элемент — имя изображения по умолчанию. Остальная часть списка представляет собой последовательность пар «состояние/значение», определенных в Style.map(), которые задают разные изображения для использования в определенном состоянии виджета или сочетании состояний. Все изображения в списке должны иметь одинаковый размер.

compound

Задает способ отображения изображения относительно текста, если заданы и параметры текста, и изображения. Допустимые значения:

  • text: отображать только текст
  • image: отображать только изображение
  • top, bottom, left, right: отображать изображение соответственно над текстом, под ним, слева или справа от него.
  • none: значение по умолчанию. Отображать изображение, если оно задано, иначе текст.

width

Если значение больше нуля, задает объем пространства в ширине символов, выделяемого для текстовой метки; если значение меньше нуля, задает минимальную ширину. Если значение равно нулю или не задано, используется естественная ширина текстовой метки.

Параметры совместимости

Параметр

Описание

state

Может принимать значение «normal» или «disabled» для управления флагом состояния «disabled». Этот параметр доступен только для записи: его установка меняет состояние виджета, но метод Widget.state() на него не влияет.

Состояния виджета

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

Флаг

Описание

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

Задает имя переменной, значение которой связано со значением виджета. При изменении значения этой переменной обновляется значение виджета, и наоборот. См. tkinter.StringVar.

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

Вещественное значение. Если задано, это минимальное значение, до которого кнопка уменьшения может уменьшить значение. При использовании в качестве аргумента его необходимо записывать как from_, поскольку from является ключевым словом Python.

to

Вещественное значение. Если задано, это максимальное значение, до которого кнопка увеличения может увеличить значение.

increment

Вещественное значение. Задает величину, на которую кнопки увеличения и уменьшения изменяют значение. По умолчанию — 1.0.

values

Последовательность строковых или вещественных значений. Если задана, кнопки увеличения и уменьшения будут циклически переключаться между элементами этой последовательности, а не увеличивать или уменьшать числа.

wrap

Логическое значение. Если True, кнопки увеличения и уменьшения будут циклически переключаться соответственно с значения to на значение from или со значения from на значение to.

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”. Каждая буква обозначает сторону (север, юг, восток или запад), к которой будет прижато дочернее окно, согласно менеджеру геометрии grid.

padding

Указывает размер дополнительного пространства между блокнотом и этой панелью. Синтаксис такой же, как у параметра padding этого виджета.

text

Задает текст, отображаемый на вкладке.

image

Задает изображение, отображаемое на вкладке. См. описание параметра image в разделе Widget.

compound

Указывает, как отображать изображение относительно текста, если заданы оба параметра — text и image. Допустимые значения см. в разделе Параметры метки.

underline

Указывает индекс (начиная с 0) символа текстовой строки, который нужно подчеркнуть. Подчеркнутый символ используется для активации с помощью мнемоники, если вызван метод Notebook.enable_traversal().

Идентификаторы вкладок

Аргумент 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: отображать метки дерева в столбце #0.
  • headings: отображать строку заголовков.

По умолчанию задано “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

Значение True/False, указывающее, следует ли отображать или скрывать дочерние элементы.

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.

set_menu(default=None, *values)

Заменяет элементы меню на 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API