Документация Python неофициальный перевод

tkinter.ttk.md

1427 строк · 118.7 КБ · обычная страница · сырой текст · скачать

1> **Источник:** https://python-all.ru/3.16/library/tkinter.ttk.html2>3> «Документация Python на русском» – неофициальный перевод официальной документации Python: версии от 2.6 до 3.16, полнотекстовый поиск, английский оригинал рядом с переводом. Эта Markdown-версия страницы предназначена для работы с LLM: вставьте её в ChatGPT, Claude или Cursor.45---67# `tkinter.ttk` – темизированные виджеты Tk89**Исходный код:** [Lib/tkinter/ttk.py](https://python-all.ru/src/main/Lib/tkinter/ttk.py)1011---1213Модуль `tkinter.ttk` предоставляет доступ к набору темизированных виджетов Tk, представленному в Tk 8.5. Он предоставляет дополнительные возможности, включая сглаживание шрифтов в X11 и прозрачность окон (требует композитный оконный менеджер в X11).1415Основная идея `tkinter.ttk` заключается в том, чтобы, насколько это возможно, разделять код, реализующий поведение виджета, и код, реализующий его внешний вид.1617Добавлено в версии 3.1.1819> **См. также**20>21> **[Поддержка стилизации виджетов Tk](https://python-all.ru/3.16/library/tkinter.ttk.html)**22>23> Документ, представляющий поддержку тем для Tk2425## Использование Ttk2627Чтобы начать использовать Ttk, импортируйте его модуль:2829```python30from tkinter import ttk31```3233Чтобы переопределить базовые виджеты Tk, импорт должен следовать после импорта Tk:3435```python36from tkinter import *37from tkinter.ttk import *38```3940Этот код заставляет несколько виджетов `tkinter.ttk` ([`Button`](https://python-all.ru/3.16/library/tkinter.ttk.html#tkinter.ttk.Button), [`Checkbutton`](https://python-all.ru/3.16/library/tkinter.ttk.html#tkinter.ttk.Checkbutton), [`Entry`](https://python-all.ru/3.16/library/tkinter.ttk.html#tkinter.ttk.Entry), [`Frame`](https://python-all.ru/3.16/library/tkinter.ttk.html#tkinter.ttk.Frame), [`Label`](https://python-all.ru/3.16/library/tkinter.ttk.html#tkinter.ttk.Label), [`LabelFrame`](https://python-all.ru/3.16/library/tkinter.ttk.html#tkinter.ttk.LabelFrame), [`Menubutton`](https://python-all.ru/3.16/library/tkinter.ttk.html#tkinter.ttk.Menubutton), [`PanedWindow`](https://python-all.ru/3.16/library/tkinter.ttk.html#tkinter.ttk.PanedWindow), [`Radiobutton`](https://python-all.ru/3.16/library/tkinter.ttk.html#tkinter.ttk.Radiobutton), [`Scale`](https://python-all.ru/3.16/library/tkinter.ttk.html#tkinter.ttk.Scale) и [`Scrollbar`](https://python-all.ru/3.16/library/tkinter.ttk.html#tkinter.ttk.Scrollbar)) автоматически заменять виджеты Tk.4142Это даёт непосредственное преимущество в использовании новых виджетов, что обеспечивает лучший внешний вид и ощущение на разных платформах; однако заменяющие виджеты не полностью совместимы. Основное отличие в том, что такие опции виджетов, как «fg», «bg» и другие, связанные со стилизацией виджетов, больше не присутствуют в виджетах Ttk. Вместо этого используйте класс [`ttk.Style`](https://python-all.ru/3.16/library/tkinter.ttk.html#tkinter.ttk.Style) для улучшенных эффектов стилизации.4344> **См. также**45>46> **[Конвертация существующих приложений для использования виджетов Tile](https://python-all.ru/3.16/library/tkinter.ttk.html)**47>48> Монография (с использованием терминологии Tcl) о различиях, обычно возникающих при переносе приложений на использование новых виджетов.4950## Виджеты Ttk5152Ttk поставляется с 18 виджетами, двенадцать из которых уже существовали в tkinter: [`Button`](https://python-all.ru/3.16/library/tkinter.ttk.html#tkinter.ttk.Button), [`Checkbutton`](https://python-all.ru/3.16/library/tkinter.ttk.html#tkinter.ttk.Checkbutton), [`Entry`](https://python-all.ru/3.16/library/tkinter.ttk.html#tkinter.ttk.Entry), [`Frame`](https://python-all.ru/3.16/library/tkinter.ttk.html#tkinter.ttk.Frame), [`Label`](https://python-all.ru/3.16/library/tkinter.ttk.html#tkinter.ttk.Label), [`LabelFrame`](https://python-all.ru/3.16/library/tkinter.ttk.html#tkinter.ttk.LabelFrame), [`Menubutton`](https://python-all.ru/3.16/library/tkinter.ttk.html#tkinter.ttk.Menubutton), [`PanedWindow`](https://python-all.ru/3.16/library/tkinter.ttk.html#tkinter.ttk.PanedWindow), [`Radiobutton`](https://python-all.ru/3.16/library/tkinter.ttk.html#tkinter.ttk.Radiobutton), [`Scale`](https://python-all.ru/3.16/library/tkinter.ttk.html#tkinter.ttk.Scale), [`Scrollbar`](https://python-all.ru/3.16/library/tkinter.ttk.html#tkinter.ttk.Scrollbar) и [`Spinbox`](https://python-all.ru/3.16/library/tkinter.ttk.html#tkinter.ttk.Spinbox). Остальные шесть – новые: [`Combobox`](https://python-all.ru/3.16/library/tkinter.ttk.html#tkinter.ttk.Combobox), [`Notebook`](https://python-all.ru/3.16/library/tkinter.ttk.html#tkinter.ttk.Notebook), [`Progressbar`](https://python-all.ru/3.16/library/tkinter.ttk.html#tkinter.ttk.Progressbar), [`Separator`](https://python-all.ru/3.16/library/tkinter.ttk.html#tkinter.ttk.Separator), [`Sizegrip`](https://python-all.ru/3.16/library/tkinter.ttk.html#tkinter.ttk.Sizegrip) и [`Treeview`](https://python-all.ru/3.16/library/tkinter.ttk.html#tkinter.ttk.Treeview). И все они являются подклассами [`Widget`](https://python-all.ru/3.16/library/tkinter.ttk.html#tkinter.ttk.Widget).5354Использование виджетов Ttk придаёт приложению улучшенный внешний вид и ощущение. Как обсуждалось выше, существуют различия в том, как кодируется стилизация.5556Код Tk:5758```python59l1 = tkinter.Label(text="Test", fg="black", bg="white")60l2 = tkinter.Label(text="Test", fg="black", bg="white")61```6263Код Ttk:6465```python66style = ttk.Style()67style.configure("BW.TLabel", foreground="black", background="white")6869l1 = ttk.Label(text="Test", style="BW.TLabel")70l2 = ttk.Label(text="Test", style="BW.TLabel")71```7273Для получения дополнительной информации о [TtkStyling](https://python-all.ru/3.16/library/tkinter.ttk.html#ttkstyling) см. документацию класса [`Style`](https://python-all.ru/3.16/library/tkinter.ttk.html#tkinter.ttk.Style).7475## Widget7677[`ttk.Widget`](https://python-all.ru/3.16/library/tkinter.ttk.html#tkinter.ttk.Widget) определяет стандартные опции и методы, поддерживаемые темизированными виджетами Tk, и не предназначен для прямого инстанцирования.7879### Стандартные опции8081Все виджеты `ttk` принимают следующие опции:8283| Параметр | Описание |84| --- | --- |85| класс | Задаёт класс окна. Этот класс используется при запросе базы параметров для получения других параметров окна, для определения тегов привязки (bindtags) по умолчанию и для выбора стандартного расположения и стиля виджета. Этот параметр доступен только для чтения и может быть задан только при создании окна. |86| cursor | Определяет курсор мыши для виджета. См. тип параметра *cursor* в разделе [Типы данных параметров Tk](https://python-all.ru/3.16/library/tkinter.html#tk-option-data-types). Если задана пустая строка (по умолчанию), курсор наследуется от родительского виджета. |87| takefocus | Определяет, принимает ли окно фокус при навигации с клавиатуры. Возвращается 0, 1 или пустая строка. Если возвращается 0, это означает, что окно должно быть полностью пропущено при навигации. Если 1 – окно должно получать фокус ввода, пока оно видимо. Пустая строка означает, что скрипты навигации сами решают, ставить ли фокус на это окно. |88| стиль | Может использоваться для указания пользовательского стиля виджета. |8990### Параметры прокручиваемых виджетов9192Следующие параметры поддерживаются виджетами, управляемыми полосой прокрутки.9394| Параметр | Описание |95| --- | --- |96| xscrollcommand | Используется для взаимодействия с горизонтальными полосами прокрутки. При изменении вида в окне виджета виджет вызывает колбэк *xscrollcommand*. Обычно этот параметр содержит метод [`Scrollbar.set`](https://python-all.ru/3.16/library/tkinter.html#tkinter.Scrollbar.set) какой-либо полосы прокрутки. Это приводит к обновлению полосы прокрутки при каждом изменении вида в окне. |97| yscrollcommand | Используется для взаимодействия с вертикальными полосами прокрутки. Дополнительные сведения см. выше. |9899### Параметры меток100101Следующие параметры поддерживаются метками, кнопками и другими виджетами, похожими на кнопки.102103| Параметр | Описание |104| --- | --- |105| text | Задаёт текстовую строку для отображения внутри виджета. |106| textvariable | Задаёт имя, значение которого будет использоваться вместо ресурса параметра text. |107| underline | Если задан, указывает индекс (начиная с 0) символа для подчёркивания в текстовой строке. Подчёркнутый символ используется для мнемонической активации. |108| image | Задаёт изображение для отображения. Это список из одного или более элементов. Первый элемент – имя изображения по умолчанию. Остальная часть списка – последовательность пар состояние/значение, как определено в [`Style.map()`](https://python-all.ru/3.16/library/tkinter.ttk.html#tkinter.ttk.Style.map), указывающая разные изображения для использования, когда виджет находится в определённом состоянии или комбинации состояний. Все изображения в списке должны быть одного размера. |109| составной | Определяет способ отображения изображения относительно текста, когда присутствуют оба параметра text и image. Допустимые значения: text: отображать только текст image: отображать только изображение top, bottom, left, right: отображать изображение соответственно над текстом, под текстом, слева от текста или справа от текста. none: по умолчанию. Отображать изображение, если оно есть, в противном случае – текст. |110| width | Если больше нуля, указывает, сколько места в ширину символа выделить для текстовой метки. Если меньше нуля – задаёт минимальную ширину. Если ноль или не указано, используется естественная ширина текстовой метки. |111112### Параметры совместимости113114| Параметр | Описание |115| --- | --- |116| состояние | Может быть установлено в «normal» или «disabled» для управления битом состояния «disabled». Это опция только для записи: её установка изменяет состояние виджета, но метод [`Widget.state()`](https://python-all.ru/3.16/library/tkinter.ttk.html#tkinter.ttk.Widget.state) не влияет на эту опцию. |117118### Состояния виджетов119120Состояние виджета – это битовая маска независимых флагов состояния.121122| Флаг | Описание |123| --- | --- |124| активно | Курсор мыши находится над виджетом, и нажатие кнопки мыши вызовет некоторое действие. |125| отключено | Виджет отключен программно. |126| фокус | Виджет имеет фокус ввода с клавиатуры. |127| нажато | Виджет находится в нажатом состоянии. |128| выбрано | «Вкл», «истина» или «текущий» для таких элементов, как Checkbutton и Radiobutton. |129| фон | В Windows и Mac есть понятие «активного» окна или окна переднего плана. Состояние *background* устанавливается для виджетов в фоновом окне и сбрасывается для виджетов в окне переднего плана. |130| только для чтения | Виджет не должен допускать изменения пользователем. |131| альтернативное | Альтернативный формат отображения, специфичный для виджета. |132| недопустимое | Значение виджета недопустимо. |133134Спецификация состояния – это последовательность имён состояний, опционально с префиксом в виде восклицательного знака, указывающим, что бит сброшен.135136### ttk.Widget137138Помимо методов, описанных ниже, [`ttk.Widget`](https://python-all.ru/3.16/library/tkinter.ttk.html#tkinter.ttk.Widget) поддерживает методы [`tkinter.Widget.cget`](https://python-all.ru/3.16/library/tkinter.html#tkinter.Misc.cget) и [`tkinter.Widget.configure`](https://python-all.ru/3.16/library/tkinter.html#tkinter.Misc.configure).139140#### `class tkinter.ttk.Widget`141142#### `identify(x, y)`143144Возвращает имя элемента в позиции *x* *y* или пустую строку, если точка не находится ни в одном элементе.145146*x* и *y* – это координаты в пикселях относительно виджета.147148#### `instate(statespec, callback=None, *args, **kw)`149150Проверяет состояние виджета. Если колбэк не указан, возвращает `True`, если состояние виджета соответствует *statespec*, и `False` в противном случае. Если колбэк указан, то он вызывается с args, если состояние виджета соответствует *statespec*.151152#### `state(statespec=None)`153154Изменяет или запрашивает состояние виджета. Если указан *statespec*, устанавливает состояние виджета в соответствии с ним и возвращает новый *statespec*, указывающий, какие флаги были изменены. Если *statespec* не указан, возвращает текущие включённые флаги состояния.155156Не путать с [`Wm.state`](https://python-all.ru/3.16/library/tkinter.html#tkinter.Wm.state).157158*statespec* обычно является списком или кортежем.159160## Combobox161162Виджет [`ttk.Combobox`](https://python-all.ru/3.16/library/tkinter.ttk.html#tkinter.ttk.Combobox) объединяет текстовое поле с выпадающим списком значений. Этот виджет является подклассом [`Entry`](https://python-all.ru/3.16/library/tkinter.ttk.html#tkinter.ttk.Entry).163164Помимо методов, унаследованных от [`Widget`](https://python-all.ru/3.16/library/tkinter.ttk.html#tkinter.ttk.Widget): [`cget()`](https://python-all.ru/3.16/library/tkinter.html#tkinter.Misc.cget), [`configure()`](https://python-all.ru/3.16/library/tkinter.html#tkinter.Misc.configure), [`identify()`](https://python-all.ru/3.16/library/tkinter.ttk.html#tkinter.ttk.Widget.identify), [`instate()`](https://python-all.ru/3.16/library/tkinter.ttk.html#tkinter.ttk.Widget.instate) и [`state()`](https://python-all.ru/3.16/library/tkinter.ttk.html#tkinter.ttk.Widget.state), а также следующих, унаследованных от [`Entry`](https://python-all.ru/3.16/library/tkinter.ttk.html#tkinter.ttk.Entry): [`bbox()`](https://python-all.ru/3.16/library/tkinter.ttk.html#tkinter.ttk.Entry.bbox), [`delete()`](https://python-all.ru/3.16/library/tkinter.html#tkinter.Entry.delete), [`icursor()`](https://python-all.ru/3.16/library/tkinter.html#tkinter.Entry.icursor), [`index()`](https://python-all.ru/3.16/library/tkinter.html#tkinter.Entry.index), [`insert()`](https://python-all.ru/3.16/library/tkinter.html#tkinter.Entry.insert), [`selection*`](https://python-all.ru/3.16/library/tkinter.html#tkinter.Entry.selection_adjust), [`xview*`](https://python-all.ru/3.16/library/tkinter.html#tkinter.XView.xview), он имеет и другие методы, описанные в [`ttk.Combobox`](https://python-all.ru/3.16/library/tkinter.ttk.html#tkinter.ttk.Combobox).165166### Параметры167168Этот виджет принимает следующие специфические параметры:169170| Параметр | Описание |171| --- | --- |172| exportselection | Логическое значение. Если установлено, выделение виджета связывается с X-выделением (которое может быть возвращено вызовом Misc.selection\_get, например). |173| justify | Определяет выравнивание текста внутри виджета. Одно из значений: “left”, “center” или “right”. |174| рост | Определяет высоту выпадающего списка в строках. |175| postcommand | Скрипт (возможно, зарегистрированный с помощью Misc.register), который вызывается непосредственно перед отображением значений. Он может определять, какие значения отображать. |176| состояние | Одно из значений: “normal”, “readonly” или “disabled”. В состоянии “readonly” значение нельзя редактировать напрямую, и пользователь может только выбрать одно из значений из выпадающего списка. В состоянии “normal” текстовое поле доступно для редактирования. В состоянии “disabled” никакое взаимодействие невозможно. |177| textvariable | Определяет имя, значение которого связано со значением виджета. Всякий раз, когда значение, ассоциированное с этим именем, изменяется, значение виджета обновляется, и наоборот. См. [`tkinter.StringVar`](https://python-all.ru/3.16/library/tkinter.html#tkinter.StringVar). |178| значения | Определяет список значений для отображения в выпадающем списке. |179| width | Определяет целое число, указывающее желаемую ширину окна ввода, в символах среднего размера шрифта виджета. |180181> **Примечание**182>183> В Tk 9.1 добавлена опция *locale*, которая выбирает локаль, используемую для определения границ слов и символов в тексте (по умолчанию `"C"`).184185### Виртуальные события186187Виджет комбобокс генерирует виртуальное событие **\<\<ComboboxSelected\>\>**, когда пользователь выбирает элемент из списка значений.188189### ttk.Combobox190191#### `class tkinter.ttk.Combobox`192193#### `current(newindex=None)`194195Если указан *newindex*, устанавливает значение комбобокса на элемент с позицией *newindex*. В противном случае возвращает индекс текущего значения или -1, если текущее значение отсутствует в списке значений.196197#### `get()`198199Возвращает текущее значение комбобокса.200201#### `set(value)`202203Устанавливает значение комбобокса в *value*.204205## Spinbox206207Виджет [`ttk.Spinbox`](https://python-all.ru/3.16/library/tkinter.ttk.html#tkinter.ttk.Spinbox) представляет собой [`ttk.Entry`](https://python-all.ru/3.16/library/tkinter.ttk.html#tkinter.ttk.Entry), дополненный стрелками увеличения и уменьшения. Его можно использовать для чисел или списков строковых значений. Этот виджет является подклассом `Entry`. Помимо методов, унаследованных от [`Widget`](https://python-all.ru/3.16/library/tkinter.ttk.html#tkinter.ttk.Widget): [`cget()`](https://python-all.ru/3.16/library/tkinter.html#tkinter.Misc.cget), [`configure()`](https://python-all.ru/3.16/library/tkinter.html#tkinter.Misc.configure), [`identify()`](https://python-all.ru/3.16/library/tkinter.ttk.html#tkinter.ttk.Widget.identify), [`instate()`](https://python-all.ru/3.16/library/tkinter.ttk.html#tkinter.ttk.Widget.instate) и [`state()`](https://python-all.ru/3.16/library/tkinter.ttk.html#tkinter.ttk.Widget.state), а также следующих, унаследованных от `Entry`: [`bbox()`](https://python-all.ru/3.16/library/tkinter.ttk.html#tkinter.ttk.Entry.bbox), [`delete()`](https://python-all.ru/3.16/library/tkinter.html#tkinter.Entry.delete), [`icursor()`](https://python-all.ru/3.16/library/tkinter.html#tkinter.Entry.icursor), [`index()`](https://python-all.ru/3.16/library/tkinter.html#tkinter.Entry.index), [`insert()`](https://python-all.ru/3.16/library/tkinter.html#tkinter.Entry.insert), [`xview*`](https://python-all.ru/3.16/library/tkinter.html#tkinter.XView.xview), он имеет некоторые другие методы, описанные в `ttk.Spinbox`.208209### Параметры210211Этот виджет принимает следующие специфические параметры:212213| Параметр | Описание |214| --- | --- |215| from | Вещественное значение. Если задано, это минимальное значение, до которого кнопка уменьшения будет уменьшать. Должно быть указано как `from_` при использовании в качестве аргумента, так как `from` является ключевым словом Python. |216| на | Вещественное значение. Если задано, это максимальное значение, до которого кнопка увеличения будет увеличивать. |217| increment | Вещественное значение. Задает величину, на которую кнопки увеличения/уменьшения изменяют значение. По умолчанию 1.0. |218| значения | Последовательность строковых или вещественных значений. Если задана, кнопки увеличения/уменьшения будут перебирать элементы этой последовательности, а не увеличивать или уменьшать числа. |219| wrap | Логическое значение. Если `True`, кнопки увеличения и уменьшения будут циклически переходить от значения `to` к значению `from` или от значения `from` к значению `to` соответственно. |220| формат | Строковое значение. Задает формат чисел, устанавливаемых кнопками увеличения/уменьшения. Он должен быть в форме “%W.Pf”, где W – ширина заполнения значения, P – точность, а ‘%’ и ‘f’ являются литералами. |221| command | Вызываемый объект Python. Будет вызван без аргументов при каждом нажатии кнопки увеличения или уменьшения. |222223### Виртуальные события224225Виджет spinbox генерирует виртуальное событие **\<\<Increment\>\>**, когда пользователь нажимает \<Up\>, и виртуальное событие **\<\<Decrement\>\>**, когда пользователь нажимает \<Down\>.226227### ttk.Spinbox228229#### `class tkinter.ttk.Spinbox`230231При нецелочисленном шаге приращения см. [числовые значения и локаль](https://python-all.ru/3.16/library/tkinter.html#tkinter-numeric-locale).232233Добавлено в версии 3.8.234235#### `get()`236237Возвращает текущее значение спинбокса.238239#### `set(value)`240241Устанавливает значение спинбокса в *value*.242243## Notebook244245Виджет Ttk Notebook управляет набором окон и отображает одно за раз. Каждое дочернее окно связано с вкладкой, которую пользователь может выбрать, чтобы изменить отображаемое в данный момент окно.246247### Параметры248249Этот виджет принимает следующие специфические параметры:250251| Параметр | Описание |252| --- | --- |253| рост | Если присутствует и больше нуля, задает желаемую высоту области панели (не включая внутренние отступы или вкладки). В противном случае используется максимальная высота всех панелей. |254| padding | Задает величину дополнительного пространства, добавляемого вокруг блокнота. Отступы представляют собой список из не более чем четырех спецификаций длины: слева, сверху, справа, снизу. Если указано менее четырех элементов, значение снизу по умолчанию равно верхнему, справа – левому, а верхнее – левому. |255| width | Если присутствует и больше нуля, задаёт желаемую ширину области панели (без учёта внутреннего отступа). В противном случае используется максимальная ширина всех панелей. |256257### Параметры вкладки258259Также существуют специальные параметры для вкладок:260261| Параметр | Описание |262| --- | --- |263| состояние | Может быть «normal», «disabled» или «hidden». Если «disabled», то вкладка не выбирается. Если «hidden», то вкладка не отображается. |264| sticky | Определяет, как дочернее окно позиционируется в области панели. Значение – строка, содержащая ноль или более символов «n», «s», «e» или «w». Каждая буква соответствует стороне (север, юг, восток, запад), к которой дочернее окно будет прикрепляться, как описано в менеджере геометрии [`grid`](https://python-all.ru/3.16/library/tkinter.html#tkinter.Grid.grid). |265| padding | Задаёт величину дополнительного пространства между блокнотом и данной панелью. Синтаксис такой же, как для параметра padding, используемого этим виджетом. |266| text | Задаёт текст, отображаемый на вкладке. |267| image | Задаёт изображение для отображения на вкладке. Смотрите параметр image, описанный в [`Widget`](https://python-all.ru/3.16/library/tkinter.ttk.html#tkinter.ttk.Widget). |268| составной | Определяет, как отображать изображение относительно текста, если присутствуют оба параметра text и image. Допустимые значения см. в [Параметры метки](https://python-all.ru/3.16/library/tkinter.ttk.html#label-options). |269| underline | Задаёт индекс (начиная с 0) символа для подчеркивания в текстовой строке. Подчёркнутый символ используется для мнемонической активации, если вызывается [`Notebook.enable_traversal()`](https://python-all.ru/3.16/library/tkinter.ttk.html#tkinter.ttk.Notebook.enable_traversal). |270271### Идентификаторы вкладок272273tab\_id, присутствующий в нескольких методах [`ttk.Notebook`](https://python-all.ru/3.16/library/tkinter.ttk.html#tkinter.ttk.Notebook), может принимать любую из следующих форм:274275- Целое число от нуля до количества вкладок276- Имя дочернего окна277- Позиционное указание вида «@x,y», идентифицирующее вкладку278- Строковый литерал «current», идентифицирующий текущую выбранную вкладку279- Строковый литерал «end», возвращающий количество вкладок (действителен только для [`Notebook.index()`](https://python-all.ru/3.16/library/tkinter.ttk.html#tkinter.ttk.Notebook.index))280281### Виртуальные события282283Этот виджет генерирует виртуальное событие **\<\<NotebookTabChanged\>\>** после выбора новой вкладки.284285### ttk.Notebook286287#### `class tkinter.ttk.Notebook`288289#### `add(child, **kw)`290291Добавляет новую вкладку в блокнот.292293Если окно в данный момент управляется блокнотом, но скрыто, оно восстанавливается на свою предыдущую позицию.294295Список доступных опций см. в [Tab Options](https://python-all.ru/3.16/library/tkinter.ttk.html#tab-options).296297#### `forget(tab_id)`298299Удаляет вкладку, указанную *tab\_id*, снимает с отображения и управления связанное окно.300301Этот метод затеняет унаследованный менеджер геометрии `forget()`; используйте [`pack_forget()`](https://python-all.ru/3.16/library/tkinter.html#tkinter.Pack.pack_forget), [`grid_forget()`](https://python-all.ru/3.16/library/tkinter.html#tkinter.Grid.grid_forget) или [`place_forget()`](https://python-all.ru/3.16/library/tkinter.html#tkinter.Place.place_forget), чтобы удалить сам виджет из его менеджера.302303#### `hide(tab_id)`304305Скрывает вкладку, указанную *tab\_id*.306307Вкладка не будет отображаться, но связанное окно остаётся под управлением блокнота, а его конфигурация запоминается. Скрытые вкладки можно восстановить командой [`add()`](https://python-all.ru/3.16/library/tkinter.ttk.html#tkinter.ttk.Notebook.add).308309#### `identify(x, y)`310311Возвращает имя элемента вкладки в позиции *x*, *y* или пустую строку, если элемент отсутствует.312313#### `index(tab_id)`314315Возвращает числовой индекс вкладки, указанной *tab\_id*, или общее количество вкладок, если *tab\_id* равно строке «end».316317#### `insert(pos, child, **kw)`318319Вставляет панель в указанную позицию.320321*pos* может быть строкой «end», целочисленным индексом или именем дочернего элемента, находящегося под управлением. Если *child* уже управляется блокнотом, он перемещается в указанную позицию.322323Список доступных опций см. в [Tab Options](https://python-all.ru/3.16/library/tkinter.ttk.html#tab-options).324325#### `select(tab_id=None)`326327Выбирает указанную *tab\_id*.328329Связанное дочернее окно будет отображено, а ранее выбранное окно (если оно отличается) будет снято с отображения. Если *tab\_id* опущен, возвращается имя виджета текущей выбранной панели.330331#### `tab(tab_id, option=None, **kw)`332333Запрашивает или изменяет параметры указанной *tab\_id*.334335Если *kw* не указан, возвращает словарь значений опций вкладки. Если указан *option*, возвращает значение этой *option*. В противном случае устанавливает опции в соответствующие значения.336337#### `tabs()`338339Возвращает кортеж окон, управляемых блокнотом.340341#### `enable_traversal()`342343Включает навигацию с клавиатуры для окна верхнего уровня, содержащего этот блокнот.344345Это расширяет привязки для окна верхнего уровня, содержащего блокнот, следующим образом:346347- `Control`-`Tab`: выбирает вкладку, следующую за текущей выбранной.348- `Shift`-`Control`-`Tab`: выбирает вкладку, предшествующую текущей выбранной.349- `Alt`-`K`: где *K* – мнемонический (подчёркнутый) символ любой вкладки, выбирает эту вкладку.350351В одном окне верхнего уровня может быть включена навигация для нескольких блокнотов, включая вложенные. Однако навигация по блокноту работает корректно только в том случае, если все панели являются прямыми дочерними элементами блокнота.352353## Progressbar354355Виджет [`ttk.Progressbar`](https://python-all.ru/3.16/library/tkinter.ttk.html#tkinter.ttk.Progressbar) показывает состояние длительной операции. Он может работать в двух режимах: 1) детерминированном режиме, который показывает объём выполненной работы относительно общего объёма; 2) недетерминированном режиме, который отображает анимацию, чтобы пользователь знал, что работа выполняется.356357### Параметры358359Этот виджет принимает следующие специфические параметры:360361| Параметр | Описание |362| --- | --- |363| orient | Одно из «horizontal» или «vertical». Указывает ориентацию индикатора выполнения. |364| length | Указывает длину длинной оси индикатора выполнения (ширину, если горизонтальный, и высоту, если вертикальный). |365| Режим | Одно из «determinate» или «indeterminate». |366| maximum | Число, задающее максимальное значение. По умолчанию равно 100. |367| value | Текущее значение индикатора выполнения. В режиме «determinate» представляет объём выполненной работы. В режиме «indeterminate» интерпретируется как по модулю *maximum*; то есть индикатор выполнения завершает один «цикл», когда его значение увеличивается на *maximum*. |368| переменная | Имя, связанное со значением опции. Если задано, значение индикатора выполнения автоматически устанавливается равным значению этого имени при каждом его изменении. |369| phase | Опция только для чтения. Виджет периодически увеличивает значение этой опции, когда его значение больше 0 и, в режиме «determinate», меньше maximum. Эта опция может использоваться текущей темой для дополнительных анимационных эффектов. |370371### ttk.Progressbar372373#### `class tkinter.ttk.Progressbar`374375#### `start(interval=None)`376377Начинает режим автоинкремента: планирует повторяющееся событие таймера, которое вызывает [`Progressbar.step()`](https://python-all.ru/3.16/library/tkinter.ttk.html#tkinter.ttk.Progressbar.step) каждые *interval* миллисекунд. Если не указано, *interval* по умолчанию равен 50 миллисекундам.378379#### `step(amount=None)`380381Увеличивает значение индикатора выполнения на *amount*.382383*amount* по умолчанию равен 1.0, если не указан.384385#### `stop()`386387Останавливает режим автоинкремента: отменяет любые повторяющиеся события таймера, запущенные [`Progressbar.start()`](https://python-all.ru/3.16/library/tkinter.ttk.html#tkinter.ttk.Progressbar.start) для данного индикатора выполнения.388389## Separator390391Виджет [`ttk.Separator`](https://python-all.ru/3.16/library/tkinter.ttk.html#tkinter.ttk.Separator) отображает горизонтальную или вертикальную разделительную полосу.392393У него нет других методов, кроме унаследованных от [`ttk.Widget`](https://python-all.ru/3.16/library/tkinter.ttk.html#tkinter.ttk.Widget).394395### Параметры396397Этот виджет принимает следующую специфическую опцию:398399| Параметр | Описание |400| --- | --- |401| orient | Одно из «horizontal» или «vertical». Указывает ориентацию разделителя. |402403## Sizegrip404405Виджет [`ttk.Sizegrip`](https://python-all.ru/3.16/library/tkinter.ttk.html#tkinter.ttk.Sizegrip) (также известный как угловой захват) позволяет пользователю изменять размер содержащего окна верхнего уровня, нажимая и перетаскивая захват.406407Этот виджет не имеет ни специфических опций, ни специфических методов, кроме унаследованных от [`ttk.Widget`](https://python-all.ru/3.16/library/tkinter.ttk.html#tkinter.ttk.Widget).408409### Примечания для конкретных платформ410411- В macOS в окна верхнего уровня по умолчанию автоматически встроен захват размера. Добавление [`Sizegrip`](https://python-all.ru/3.16/library/tkinter.ttk.html#tkinter.ttk.Sizegrip) безвредно, так как встроенный захват просто закроет виджет.412413### Ошибки414415- Если положение содержащего окна верхнего уровня было указано относительно правого или нижнего края экрана (например, ....), виджет [`Sizegrip`](https://python-all.ru/3.16/library/tkinter.ttk.html#tkinter.ttk.Sizegrip) не изменит размер окна.416- Этот виджет поддерживает только изменение размера в направлении «southeast».417418## Treeview419420Виджет [`ttk.Treeview`](https://python-all.ru/3.16/library/tkinter.ttk.html#tkinter.ttk.Treeview) отображает иерархическую коллекцию элементов. Каждый элемент имеет текстовую метку, необязательное изображение и необязательный список значений данных. Значения данных отображаются в последовательных колонках после метки дерева.421422Порядок отображения значений данных можно контролировать, установив опцию виджета `displaycolumns`. Древовидный виджет также может отображать заголовки столбцов. Доступ к столбцам можно получить по номерам или символьным именам, перечисленным в опции columns виджета. См. [Идентификаторы столбцов](https://python-all.ru/3.16/library/tkinter.ttk.html#column-identifiers).423424Каждый элемент идентифицируется уникальным именем. Виджет сгенерирует ID элементов, если они не предоставлены вызывающей стороной. Существует выделенный корневой элемент, с именем `{}`. Сам корневой элемент не отображается; его дочерние элементы появляются на верхнем уровне иерархии.425426Каждый элемент также имеет список тегов, которые можно использовать для связывания событий с отдельными элементами и управления внешним видом элемента.427428Виджет Treeview поддерживает горизонтальную и вертикальную прокрутку в соответствии с опциями, описанными в [Параметры прокручиваемых виджетов](https://python-all.ru/3.16/library/tkinter.ttk.html#scrollable-widget-options), и методами [`Treeview.xview()`](https://python-all.ru/3.16/library/tkinter.ttk.html#tkinter.ttk.Treeview.xview) и [`Treeview.yview()`](https://python-all.ru/3.16/library/tkinter.ttk.html#tkinter.ttk.Treeview.yview).429430### Параметры431432Этот виджет принимает следующие специфические параметры:433434| Параметр | Описание |435| --- | --- |436| columns | Список идентификаторов столбцов, определяющий количество столбцов и их имена. |437| displaycolumns | Список идентификаторов столбцов (символьных или целочисленных индексов), определяющий, какие столбцы данных отображаются и в каком порядке они появляются, или строка «#all». |438| рост | Определяет количество строк, которые должны быть видны. Примечание: запрошенная ширина определяется суммой ширин столбцов. |439| padding | Определяет внутренний отступ виджета. Отступ – это список из не более чем четырёх спецификаций длины. |440| selectmode | Управляет тем, как встроенные привязки класса управляют выделением. Одно из значений: «extended», «browse» или «none». Если установлено «extended» (по умолчанию), можно выбрать несколько элементов. Если «browse», единовременно выбирается только один элемент. Если «none», выделение не будет изменяться. Обратите внимание, что код приложения и привязки тегов могут установить выделение по своему усмотрению, независимо от значения этой опции. |441| show | Список, содержащий ноль или более следующих значений, определяющий, какие элементы дерева отображать. tree: отображать метки дерева в столбце #0. headings: отображать строку заголовков. По умолчанию «tree headings», то есть отображаются все элементы. **Примечание**: столбец #0 всегда относится к столбцу дерева, даже если show=«tree» не указано. |442443> **Примечание**444>445> Tk 9.0 добавил несколько функций [`Treeview`](https://python-all.ru/3.16/library/tkinter.ttk.html#tkinter.ttk.Treeview). Опция *selectmode* получила значения `"single"` и `"multiple"`; были введены новые опции виджета *selecttype* (выделение `"item"` или `"cell"`), *striped* (чередующиеся строки), а также *titlecolumns* / *titleitems* (столбцы или строки, зафиксированные от прокрутки); и элементы получили опцию *hidden*. Tk 9.1 добавил опции *rowheight* и *headingheight*.446447### Параметры элементов448449Следующие опции элементов могут быть указаны для элементов в командах виджета insert и item.450451| Параметр | Описание |452| --- | --- |453| text | Текстовая метка, отображаемая для элемента. |454| image | Изображение Tk, отображаемое слева от метки. |455| значения | Список значений, связанных с элементом. Каждый элемент должен содержать столько же значений, сколько столбцов в опции columns виджета. Если значений меньше, чем столбцов, оставшиеся значения считаются пустыми. Если значений больше, чем столбцов, лишние значения игнорируются. |456| open | `True`/`False` значение, указывающее, должны ли дочерние элементы отображаться или быть скрыты. |457| tags | Список тегов, связанных с этим элементом. |458459### Опции тегов460461Для тегов могут быть указаны следующие опции:462463| Параметр | Описание |464| --- | --- |465| foreground | Определяет цвет текста. |466| фон | Определяет цвет фона ячейки или элемента. |467| font | Определяет шрифт, используемый при отрисовке текста. |468| image | Определяет изображение элемента, если опция image элемента пуста. |469470### Идентификаторы столбцов471472Идентификаторы столбцов могут принимать одну из следующих форм:473474- Символическое имя из списка опции columns.475- Целое число n, указывающее n-й столбец данных.476- Строка вида #n, где n – целое число, указывающая n-й столбец отображения.477478Примечания:479480- Значения опций элемента могут отображаться в порядке, отличном от порядка, в котором они хранятся.481- Столбец #0 всегда ссылается на столбец дерева, даже если show="tree" не указан.482483Номер столбца данных – это индекс в списке значений опций элемента; номер столбца отображения – это номер столбца в дереве, где отображаются значения. Метки дерева отображаются в столбце #0. Если опция displaycolumns не задана, то столбец данных n отображается в столбце #n+1. И снова, **столбец #0 всегда ссылается на столбец дерева**.484485### Виртуальные события486487Виджет Treeview генерирует следующие виртуальные события.488489| Событие | Описание |490| --- | --- |491| \<\<TreeviewSelect\>\> | Генерируется при каждом изменении выделения. |492| \<\<TreeviewOpen\>\> | Генерируется непосредственно перед установкой элемента фокуса в open=True. |493| \<\<TreeviewClose\>\> | Генерируется сразу после установки элемента фокуса в open=False. |494495Методы [`Treeview.focus()`](https://python-all.ru/3.16/library/tkinter.ttk.html#tkinter.ttk.Treeview.focus) и [`Treeview.selection()`](https://python-all.ru/3.16/library/tkinter.ttk.html#tkinter.ttk.Treeview.selection) можно использовать для определения затронутого элемента или элементов.496497### ttk.Treeview498499#### `class tkinter.ttk.Treeview`500501#### `bbox(item, column=None)`502503Возвращает ограничивающую рамку (относительно окна виджета treeview) указанного *элемента* в формате (x, y, width, height).504505Если указан *столбец*, возвращает ограничивающую рамку этой ячейки. Если *элемент* не видим (то есть является потомком закрытого элемента или прокручен за экран), возвращает пустую строку.506507Этот метод переопределяет унаследованный `Misc.bbox()`; используйте [`grid_bbox()`](https://python-all.ru/3.16/library/tkinter.html#tkinter.Misc.grid_bbox) для получения ограничивающего прямоугольника в сетке.508509#### `get_children(item=None)`510511Возвращает кортеж дочерних элементов, принадлежащих *элементу*.512513Если *элемент* не указан, возвращает корневые дочерние элементы.514515#### `set_children(item, *newchildren)`516517Заменяет дочерние элементы *элемента* на *newchildren*.518519Дочерние элементы, присутствующие в *элементе*, но отсутствующие в *newchildren*, отсоединяются от дерева. Ни один элемент в *newchildren* не может быть предком *элемента*. Обратите внимание, что если не указать *newchildren*, это приведёт к отсоединению дочерних элементов *элемента*.520521#### `column(column, option=None, **kw)`522523Запрашивает или изменяет параметры для указанного *столбца*.524525Если *kw* не передан, возвращает словарь значений параметров столбца. Если указан *параметр*, возвращается значение этого *параметра*. В противном случае устанавливает параметры в соответствующие значения.526527Допустимые параметры/значения:528529***идентификатор***530531Возвращает имя столбца. Это параметр только для чтения.532533***anchor*: одно из стандартных значений привязки Tk.**534535Определяет, как должен быть выровнен текст в этом столбце относительно ячейки.536537***minwidth*: ширина**538539Минимальная ширина столбца в пикселях. Виджет treeview не сделает столбец уже, чем указано этим параметром, при изменении размера виджета или перетаскивании столбца пользователем.540541***растяжение*: `True`/`False`**542543Определяет, должна ли ширина столбца изменяться при изменении размера виджета.544545***width*: ширина**546547Ширина столбца в пикселях.548549Чтобы настроить столбец дерева, вызовите этот метод с column = “#0”.550551#### `delete(*items)`552553Удаляет все указанные *items* и всех их потомков.554555Корневой элемент не может быть удалён.556557#### `detach(*items)`558559Открепляет все указанные *items* от дерева.560561Элементы и все их потомки по-прежнему существуют и могут быть повторно вставлены в другое место дерева, но не будут отображаться.562563Корневой элемент не может быть откреплён.564565#### `exists(item)`566567Возвращает `True`, если указанный *item* присутствует в дереве, иначе `False`.568569#### `focus(item=None)`570571Если указан *item*, устанавливает элемент фокуса на *item*. В противном случае возвращает текущий элемент фокуса или '' (пустую строку), если его нет.572573Этот метод затеняет унаследованный `Misc.focus()`; используйте [`focus_set()`](https://python-all.ru/3.16/library/tkinter.html#tkinter.Misc.focus_set) для фокусировки самого виджета.574575#### `heading(column, option=None, **kw)`576577Запрашивает или изменяет параметры заголовка для указанного *column*.578579Если *kw* не указан, возвращает словарь значений параметров заголовка. Если указан *option*, возвращается значение для этого *option*. В противном случае устанавливает параметры в соответствующие значения.580581Допустимые параметры/значения:582583***текст*: text**584585Текст, отображаемый в заголовке столбца.586587***изображение*: imageName**588589Указывает изображение, отображаемое справа от заголовка столбца.590591***якорь*: anchor**592593Указывает, как должен быть выровнен текст заголовка. Одно из стандартных значений привязки Tk.594595***command*: колбэк**596597Колбэк, вызываемый при нажатии на метку заголовка.598599Для настройки заголовка столбца дерева вызовите этот метод с column = "#0".600601#### `identify(component, x, y)`602603Возвращает описание указанного *component* в точке, заданной *x* и *y*, или пустую строку, если такой *component* отсутствует в этой позиции.604605#### `identify_row(y)`606607Возвращает идентификатор элемента в позиции *y*.608609#### `identify_column(x)`610611Возвращает идентификатор отображаемого столбца ячейки в позиции *x*.612613Столбец дерева имеет ID #0.614615#### `identify_region(x, y)`616617Возвращает одно из:618619| регион | значение |620| --- | --- |621| заголовок | Область заголовка дерева. |622| разделитель | Промежуток между заголовками двух столбцов. |623| дерево | Область дерева. |624| ячейка | Ячейка данных. |625626Доступность: Tk 8.6.627628#### `identify_element(x, y)`629630Возвращает элемент в позиции *x*, *y*.631632Доступность: Tk 8.6.633634#### `index(item)`635636Возвращает целочисленный индекс *item* в списке дочерних элементов его родителя.637638#### `insert(parent, index, iid=None, **kw)`639640Создаёт новый элемент и возвращает идентификатор созданного элемента.641642*parent* – это идентификатор родительского элемента или пустая строка для создания нового элемента верхнего уровня. *index* – целое число или значение «end», указывающее, куда в списке дочерних элементов родителя вставить новый элемент. Если *index* меньше или равен нулю, новый узел вставляется в начало; если *index* больше или равен текущему количеству дочерних элементов, он вставляется в конец. Если указан *iid*, он используется в качестве идентификатора элемента; *iid* не должен уже существовать в дереве. В противном случае создаётся новый уникальный идентификатор.643644См. [Параметры элемента](https://python-all.ru/3.16/library/tkinter.ttk.html#item-options) для списка доступных параметров.645646#### `item(item, option=None, **kw)`647648Запрашивает или изменяет параметры указанного *item*.649650Если параметры не заданы, возвращается словарь с парами параметр/значение для элемента. Если указан *option*, возвращается значение этого параметра. В противном случае устанавливает параметры в соответствии со значениями, переданными в *kw*.651652#### `move(item, parent, index)`653654Перемещает *item* на позицию *index* в список дочерних элементов *parent*.655656Перемещать элемент под один из его потомков запрещено. Если *index* меньше или равен нулю, *item* перемещается в начало; если больше или равен количеству дочерних элементов, перемещается в конец. Если *item* был отсоединён, он повторно присоединяется.657658[`reattach()`](https://python-all.ru/3.16/library/tkinter.ttk.html#tkinter.ttk.Treeview.reattach) является псевдонимом `move()`.659660#### `next(item)`661662Возвращает идентификатор следующего родственного элемента *элемента*, или ‘’, если *элемент* является последним дочерним элементом своего родителя. Эквивалентно `after_item(item, hidden=True, recurse=False)`.663664#### `parent(item)`665666Возвращает идентификатор родителя *элемента* или пустую строку, если *элемент* находится на верхнем уровне иерархии.667668#### `prev(item)`669670Возвращает идентификатор предыдущего родственного элемента *элемента*, или ‘’, если *элемент* является первым дочерним элементом своего родителя. Эквивалентно `before_item(item, hidden=True, recurse=False)`.671672#### `after_item(item, *, hidden=False, recurse=True)`673674Возвращает идентификатор элемента, следующего за *элементом* (первый дочерний элемент, следующий родственный элемент или следующий родственный элемент предка), или ‘’, если такого нет. По умолчанию учитываются только видимые элементы; если *скрытый* равен true, скрытые элементы также включаются. Если *recurse* равен false, учитываются только родственные элементы *элемента* (см. [`next()`](https://python-all.ru/3.16/library/functions.html#next)).675676Требует Tk 9.1 или новее.677678Добавлено в версии 3.16.0a0 (не выпущено).679680#### `before_item(item, *, hidden=False, recurse=True)`681682Возвращает идентификатор элемента перед *item* (предыдущий соседний элемент или родитель *item*), или пустую строку, если такого нет. По умолчанию учитываются только видимые элементы; если *hidden* равно true, скрытые элементы тоже включаются. Если *recurse* равно false, учитываются только соседи *item* (см. [`prev()`](https://python-all.ru/3.16/library/tkinter.ttk.html#tkinter.ttk.Treeview.prev)).683684Требуется Tk 9.1 или новее.685686Добавлено в версии 3.16.0a0 (не выпущено).687688#### `depth(item)`689690Возвращает количество уровней между *item* и корневым элементом.691692Требуется Tk 9.1 или новее.693694Добавлено в версии 3.16.0a0 (не выпущено).695696#### `haschildren(item)`697698Возвращает `True`, если *item* имеет дочерние элементы, иначе `False`.699700Требуется Tk 9.1 или новее.701702Добавлено в версии 3.16.0a0 (не выпущено).703704#### `visible(item)`705706Возвращает `True`, если *item* видим, иначе `False`. Элемент видим, если он не отсоединён, не скрыт, и все его предки открыты и не скрыты.707708Требуется Tk 9.1 или новее.709710Добавлено в версии 3.16.0a0 (не выпущено).711712#### `size(item, *, hidden=False, recurse=False)`713714Возвращает количество дочерних элементов для *item*. Если *hidden* равно true, скрытые элементы включаются. Если *recurse* равно true, включаются все потомки *item*. Используйте `''` для корневого элемента. `size(item, hidden=True)` равно `len(get_children(item))` (который всегда включает скрытые элементы).715716Требуется Tk 9.1 или новее.717718Добавлено в версии 3.16.0a0 (не выпущено).719720#### `range(first, last, *, hidden=False, recurse=True)`721722Возвращает кортеж элементов от *first* до *last* включительно. Если *hidden* равно true, скрытые элементы включаются. Если *recurse* равно false, потомки и предки исключаются.723724Требуется Tk 9.1 или новее.725726Добавлено в версии 3.16.0a0 (не выпущено).727728#### `identifier(item, index)`729730Возвращает идентификатор элемента по индексу *index* в списке дочерних элементов *item*.731732Требуется Tk 9.1 или новее.733734Добавлено в версии 3.16.0a0 (не выпущено).735736#### `current()`737738Возвращает идентификатор текущего элемента и идентификатор столбца в виде кортежа из двух элементов, или пустой кортеж, если таковых нет. Текущий элемент – это элемент под указателем мыши.739740Требуется Tk 9.1 или новее.741742Добавлено в версии 3.16.0a0 (не выпущено).743744#### `expand(*items, recurse=False)`745746Устанавливает для всех указанных элементов состояние «открыт». Если *recurse* равно true, также открываются все их потомки; для этого требуется Tk 9.1. Используйте `''` для корневого элемента. `expand(item)` эквивалентно `item(item, open=True)`.747748Добавлено в версии 3.16.0a0 (не выпущено).749750#### `collapse(*items, recurse=False)`751752Устанавливает для всех указанных элементов состояние «закрыт». Если *recurse* равно true, также закрываются все их потомки; для этого требуется Tk 9.1. Используйте `''` для корневого элемента. `collapse(item)` эквивалентно `item(item, open=False)`.753754Добавлено в версии 3.16.0a0 (не выпущено).755756#### `hide(*items, recurse=False)`757758Скрывает все указанные элементы и все их дочерние элементы. Если *recurse* равно true, также скрываются все их потомки. Используйте `''` для корневого элемента. `hide(item)` эквивалентно `item(item, hidden=True)`.759760Требуется Tk 9.1 или новее.761762Добавлено в версии 3.16.0a0 (не выпущено).763764#### `unhide(*items, recurse=False)`765766Показать все указанные элементы. Если *recurse* истинно, также показать всех их потомков. Используйте `''` для корневого элемента. `unhide(item)` эквивалентно `item(item, hidden=False)`.767768Требуется Tk 9.1 или новее.769770Добавлено в версии 3.16.0a0 (не выпущено).771772#### `detached(item=None)`773774Возвращает информацию об отсоединённых элементах (см. [`detach()`](https://python-all.ru/3.16/library/tkinter.ttk.html#tkinter.ttk.Treeview.detach)). Без аргументов возвращает кортеж всех отсоединённых элементов, но не их потомков (см. [`detached_all()`](https://python-all.ru/3.16/library/tkinter.ttk.html#tkinter.ttk.Treeview.detached_all)). С *item* возвращает, отсоединён ли *item*; начиная с Tk 9.1 также возвращает истину, если предок *item* отсоединён.775776Требуется Tk 9.0 или новее.777778Добавлено в версии 3.16.0a0 (не выпущено).779780#### `detached_all()`781782Возвращает кортеж всех отсоединённых элементов и всех их потомков (см. [`detach()`](https://python-all.ru/3.16/library/tkinter.ttk.html#tkinter.ttk.Treeview.detach)).783784Требуется Tk 9.1 или новее.785786Добавлено в версии 3.16.0a0 (не выпущено).787788#### `cellfocus(cell=None)`789790Получить или установить ячейку фокуса. Без *cell* возвращает ячейку фокуса в виде кортежа из двух элементов `(item, column)`, или пустой кортеж, если её нет. С *cell* устанавливает ячейку фокуса; используйте `''`, чтобы сбросить её. Ячейка задаётся парой `(item, column)`.791792Требуется Tk 9.1 или новее.793794Добавлено в версии 3.16.0a0 (не выпущено).795796#### `sort(parent, *, column=None, command=None, dictionary=False, integer=False, real=False, nocase=False, decreasing=False, ignoreempty=False, recurse=False)`797798Сортирует дочерние элементы *parent*. По умолчанию дочерние элементы сортируются по значению первого столбца отображения, как строки Unicode, в порядке возрастания. *column* выбирает столбец для сортировки. *dictionary*, *integer* и *real* выбирают тип сравнения; *nocase* делает сравнение строк без учёта регистра. *command* – это функция от двух значений, возвращающая отрицательное, нулевое или положительное число. *decreasing* меняет порядок на обратный. *ignoreempty* пропускает пустые значения (с *integer* или *real*). *recurse* также сортирует всех потомков.799800Требуется Tk 9.1 или новее.801802Добавлено в версии 3.16.0a0 (не выпущено).803804#### `search(parent, pattern, *, columns=None, start=None, stop=None, dictionary=False, integer=False, real=False, nocase=False, glob=False, regexp=False, backwards=False, hidden=False, recurse=False, wraparound=False)`805806Ищет в дочерних элементах *parent* по *pattern* и возвращает идентификатор первого подходящего элемента, или `''`, если совпадений нет. По умолчанию *pattern* сравнивается на точное равенство со значением каждого отображаемого столбца, как строки Unicode, поиск выполняется в прямом направлении среди прямых дочерних элементов *parent*. *glob* или *regexp* выбирают сопоставление по шаблону (glob) или регулярному выражению; *dictionary*, *integer* и *real* выбирают тип сравнения; *nocase* делает его без учёта регистра. *columns* ограничивает поиск указанными столбцами. *start* и *stop* задают границы поиска; *backwards* меняет направление на обратное; *wraparound* продолжает с другого конца. *hidden* также ищет скрытые и закрытые элементы; *recurse* ищет всех потомков.807808См. [`search_all()`](https://python-all.ru/3.16/library/tkinter.ttk.html#tkinter.ttk.Treeview.search_all), [`search_cell()`](https://python-all.ru/3.16/library/tkinter.ttk.html#tkinter.ttk.Treeview.search_cell) и [`search_all_cells()`](https://python-all.ru/3.16/library/tkinter.ttk.html#tkinter.ttk.Treeview.search_all_cells).809810Требуется Tk 9.1 или новее.811812Добавлено в версии 3.16.0a0 (не выпущено).813814#### `search_all(parent, pattern, **kwargs)`815816Как и [`search()`](https://python-all.ru/3.16/library/tkinter.ttk.html#tkinter.ttk.Treeview.search), но возвращает кортеж идентификаторов всех подходящих элементов.817818Требуется Tk 9.1 или новее.819820Добавлено в версии 3.16.0a0 (не выпущено).821822#### `search_cell(parent, pattern, **kwargs)`823824Как и [`search()`](https://python-all.ru/3.16/library/tkinter.ttk.html#tkinter.ttk.Treeview.search), но возвращает первую подходящую ячейку в виде кортежа из двух элементов `(item, column)`, или пустой кортеж, если совпадений нет.825826Требуется Tk 9.1 или новее.827828Добавлено в версии 3.16.0a0 (не выпущено).829830#### `search_all_cells(parent, pattern, **kwargs)`831832Как и [`search()`](https://python-all.ru/3.16/library/tkinter.ttk.html#tkinter.ttk.Treeview.search), но возвращает кортеж всех подходящих ячеек, каждая из которых представляет собой кортеж из двух элементов `(item, column)`.833834Требуется Tk 9.1 или новее.835836Добавлено в версии 3.16.0a0 (не выпущено).837838#### `cellselection()`839840Возвращает кортеж выбранных ячеек, каждая из которых представляет собой кортеж из двух элементов `(item, column)`. Выбор ячеек не зависит от выбора элементов (см. [`selection()`](https://python-all.ru/3.16/library/tkinter.ttk.html#tkinter.ttk.Treeview.selection)).841842Требуется Tk 9.1 или новее.843844Добавлено в версии 3.16.0a0 (не выпущено).845846#### `cellselection_set(*cells)`847848Указанные ячейки становятся новым набором выбранных ячеек. Каждая ячейка задаётся парой `(item, column)`. Вызов без аргументов очищает набор выбранных ячеек.849850Требуется Tk 9.1 или новее.851852Добавлено в версии 3.16.0a0 (не выпущено).853854#### `cellselection_add(*cells)`855856Добавляет указанные ячейки в выделение ячеек.857858Требуется Tk 9.1 или новее.859860Добавлено в версии 3.16.0a0 (не выпущено).861862#### `cellselection_remove(*cells)`863864Удаляет указанные ячейки из выделения ячеек.865866Требуется Tk 9.1 или новее.867868Добавлено в версии 3.16.0a0 (не выпущено).869870#### `cellselection_set_range(first, last, *, hidden=True, recurse=True)`871872Устанавливает выделение ячеек на прямоугольник ячеек от *first* до *last*. *first* и *last* – противоположные угловые ячейки, каждая представлена парой `(item, column)` и должна находиться в отображаемых столбцах. Все остальные ячейки снимаются с выделения. Если *hidden* равно false, скрытые ячейки исключаются; если *recurse* равно false, ячейки в дочерних элементах исключаются.873874Требуется Tk 9.1 или новее.875876Добавлено в версии 3.16.0a0 (не выпущено).877878#### `cellselection_add_range(first, last, *, hidden=True, recurse=True)`879880Как [`cellselection_set_range()`](https://python-all.ru/3.16/library/tkinter.ttk.html#tkinter.ttk.Treeview.cellselection_set_range), но добавляет прямоугольник ячеек к выделению, а не заменяет его.881882Требуется Tk 9.1 или новее.883884Добавлено в версии 3.16.0a0 (не выпущено).885886#### `cellselection_remove_range(first, last, *, hidden=True, recurse=True)`887888Как [`cellselection_set_range()`](https://python-all.ru/3.16/library/tkinter.ttk.html#tkinter.ttk.Treeview.cellselection_set_range), но удаляет прямоугольник ячеек из выделения.889890Требуется Tk 9.1 или новее.891892Добавлено в версии 3.16.0a0 (не выпущено).893894#### `cellselection_anchor(cell=None)`895896Получает или задаёт якорь выделения ячеек. Без аргумента *cell* возвращает якорь в виде кортежа из двух элементов `(item, column)`, или пустой кортеж, если он не задан. С аргументом *cell* задаёт якорь; используйте `''`, чтобы сбросить его.897898Требуется Tk 9.1 или новее.899900Добавлено в версии 3.16.0a0 (не выпущено).901902#### `cellselection_includes(*cells)`903904Возвращает, все ли указанные ячейки выбраны.905906Требуется Tk 9.1 или новее.907908Добавлено в версии 3.16.0a0 (не выпущено).909910#### `cellselection_present()`911912Возвращает, выбрана ли хотя бы одна ячейка.913914Требуется Tk 9.1 или новее.915916Добавлено в версии 3.16.0a0 (не выпущено).917918#### `tag_cell_add(tagname, *cells)`919920Добавляет указанный тег к каждой из заданных ячеек. Каждая ячейка представляет собой пару `(item, column)`. Теги ячеек независимы от тегов элементов.921922Требуется Tk 9.1 или новее.923924Добавлено в версии 3.16.0a0 (не выпущено).925926#### `tag_cell_remove(tagname, *cells)`927928Удаляет указанный тег из каждой заданной ячейки. Если ячейки не указаны, тег удаляется из всех ячеек.929930Требуется Tk 9.1 или новее.931932Добавлено в версии 3.16.0a0 (не выпущено).933934#### `tag_cell_has(tagname, cell=None)`935936Проверяет наличие тега у ячейки или выводит список ячеек, у которых он есть. Если указана *ячейка*, возвращает, есть ли у этой ячейки заданный тег. В противном случае возвращает кортеж всех ячеек (в виде `(item, column)` кортежей из двух элементов), имеющих этот тег.937938Требуется Tk 9.1 или новее.939940Добавлено в версии 3.16.0a0 (не выпущено).941942#### `see(item)`943944Обеспечивает видимость *элемента*.945946Устанавливает для всех предков *элемента* опцию открытия в `True` и при необходимости прокручивает виджет, чтобы *элемент* оказался в видимой части дерева.947948#### `selection()`949950Возвращает кортеж выделенных элементов.951952Изменено в версии 3.8: `selection()` больше не принимает аргументов. Для изменения состояния выделения используйте следующие методы выделения.953954#### `selection_set(*items)`955956*Элементы* становятся новым выделением.957958Изменено в версии 3.6: *items* можно передавать отдельными аргументами, а не только одним кортежем.959960#### `selection_add(*items)`961962Добавляет *элементы* в выделение.963964Изменено в версии 3.6: *items* можно передавать отдельными аргументами, а не только одним кортежем.965966#### `selection_remove(*items)`967968Удаляет *элементы* из выделения.969970Изменено в версии 3.6: *items* можно передавать отдельными аргументами, а не только одним кортежем.971972#### `selection_toggle(*items)`973974Переключает состояние выделения каждого элемента из *items*.975976Изменено в версии 3.6: *items* можно передавать отдельными аргументами, а не только одним кортежем.977978#### `set(item, column=None, value=None)`979980С одним аргументом возвращает словарь пар столбец/значение для указанного *элемента*. С двумя аргументами возвращает текущее значение указанного *столбца*. С тремя аргументами устанавливает значение заданного *столбца* в заданном *элементе* равным указанному *значению*.981982#### `tag_bind(tagname, sequence=None, callback=None)`983984Привязывает колбэк к заданному событию *sequence* для тега *tagname*. Когда событие доставляется элементу, вызываются колбэки для каждого из тегов этого элемента.985986#### `tag_configure(tagname, option=None, **kw)`987988Запрашивает или изменяет параметры для указанного *tagname*.989990Если *kw* не указан, возвращает словарь настроек параметров для *tagname*. Если указан *option*, возвращает значение этого *параметра* для указанного *tagname*. В противном случае устанавливает параметры в соответствующие значения для заданного *tagname*.991992#### `tag_has(tagname, item=None)`993994Если указан *элемент*, возвращает `True`, если указанный *элемент* имеет заданный *tagname*, и `False` в противном случае. В противном случае возвращает кортеж всех элементов, имеющих указанный тег.995996Доступность: Tk 8.6997998#### `xview(*args)`9991000Запрашивает или изменяет горизонтальное положение treeview.10011002#### `yview(*args)`10031004Запрашивает или изменяет вертикальное положение treeview.10051006## Стилизация Ttk10071008Каждому виджету в `ttk` назначается стиль, который определяет набор элементов, составляющих виджет, и то, как они располагаются, а также динамические и стандартные настройки для параметров элементов. По умолчанию имя стиля совпадает с именем класса виджета, но его можно переопределить с помощью параметра style виджета. Если имя класса виджета неизвестно, используйте метод [`Misc.winfo_class`](https://python-all.ru/3.16/library/tkinter.html#tkinter.Misc.winfo_class) (somewidget.winfo\_class()).10091010> **См. также**1011>1012> **[Доклад на конференции Tcl’2004](https://python-all.ru/3.16/library/tkinter.ttk.html)**1013>1014> В этом документе объясняется, как работает механизм тем.10151016#### `class tkinter.ttk.Style`10171018Этот класс используется для управления базой данных стилей.10191020#### `configure(style, query_opt=None, **kw)`10211022Запрашивает или устанавливает значение по умолчанию для указанных параметров в *style*.10231024Каждый ключ в *kw* является параметром, а каждое значение – строкой, определяющей значение этого параметра.10251026Например, чтобы изменить все кнопки по умолчанию на плоские с отступами и другим цветом фона:10271028```python1029from tkinter import ttk1030import tkinter10311032root = tkinter.Tk()10331034ttk.Style().configure("TButton", padding=6, relief="flat",1035   background="#ccc")10361037btn = ttk.Button(text="Sample")1038btn.pack()10391040root.mainloop()1041```10421043#### `map(style, query_opt=None, **kw)`10441045Запрашивает или устанавливает динамические значения указанных параметров в *style*.10461047Каждый ключ в *kw* является параметром, а каждое значение должно быть списком или кортежем (обычно), содержащим спецификации состояний (statespecs), сгруппированные в кортежи, списки или как-то иначе. Спецификация состояний – это комбинация одного или нескольких состояний, за которыми следует значение.10481049Пример может прояснить это.10501051```python1052import tkinter1053from tkinter import ttk10541055root = tkinter.Tk()10561057style = ttk.Style()1058style.map("C.TButton",1059    foreground=[('pressed', 'red'), ('active', 'blue')],1060    background=[('pressed', '!disabled', 'black'), ('active', 'white')]1061    )10621063colored_btn = ttk.Button(text="Test", style="C.TButton").pack()10641065root.mainloop()1066```10671068Обратите внимание, что порядок последовательностей (состояния, значение) для параметра важен. Если, например, в параметре foreground изменить порядок на `[('active', 'blue'), ('pressed', 'red')]`, то результатом будет синий цвет текста, когда виджет находится в активном или нажатом состоянии.10691070При вызове для запроса карты (без указания значений для установки) возвращается словарь, сопоставляющий каждый параметр с его списком спецификаций состояний.10711072Изменено в версии 3.10: Возвращаемое значение при запросе карты было исправлено.10731074#### `lookup(style, option, state=None, default=None)`10751076Возвращает значение, указанное для параметра *option* в стиле *style*.10771078Если указан параметр *state*, он должен быть последовательностью из одного или нескольких состояний. Если задан аргумент *default*, он используется как запасное значение, если спецификация для параметра не найдена.10791080Чтобы проверить, какой шрифт использует Button по умолчанию:10811082```python1083from tkinter import ttk10841085print(ttk.Style().lookup("TButton", "font"))1086```10871088#### `layout(style, layoutspec=None)`10891090Определяет макет виджета для указанного стиля *style*. Если *layoutspec* опущен, возвращает спецификацию макета для указанного стиля.10911092*layoutspec*, если указан, должен быть списком или другим типом последовательности (исключая строки), где каждый элемент должен быть кортежем, первый элемент – имя макета, а второй элемент должен иметь формат, описанный в разделе [Layouts](https://python-all.ru/3.16/library/tkinter.ttk.html#layouts).10931094Чтобы понять формат, посмотрите следующий пример (он не предназначен для выполнения полезных действий):10951096```python1097from tkinter import ttk1098import tkinter10991100root = tkinter.Tk()11011102style = ttk.Style()1103style.layout("TMenubutton", [1104   ("Menubutton.background", None),1105   ("Menubutton.button", {"children":1106       [("Menubutton.focus", {"children":1107           [("Menubutton.padding", {"children":1108               [("Menubutton.label", {"side": "left", "expand": 1})]1109           })]1110       })]1111   }),1112])11131114mbtn = ttk.Menubutton(text='Text')1115mbtn.pack()1116root.mainloop()1117```11181119#### `element_create(elementname, etype, *args, **kw)`11201121Создает новый элемент в текущей теме заданного типа *etype*, который должен быть «image», «from» или «vsapi». Последний доступен только в Tk 8.6 в Windows.11221123Если используется «image», *args* должен содержать имя изображения по умолчанию, за которым следуют пары спецификация состояния/значение (это imagespec), а *kw* может иметь следующие параметры:11241125**border=padding**11261127padding – это список из не более четырёх целых чисел, задающих левую, верхнюю, правую и нижнюю границы соответственно.11281129**height=height**11301131Задаёт минимальную высоту элемента. Если меньше нуля, по умолчанию используется высота базового изображения.11321133**padding=padding**11341135Задаёт внутренний отступ элемента. По умолчанию равен значению border, если не указан.11361137**sticky=spec**11381139Определяет расположение изображения внутри результирующей области. spec содержит ноль или более символов «n», «s», «w» или «e».11401141**width=width**11421143Задаёт минимальную ширину элемента. Если меньше нуля, по умолчанию используется ширина базового изображения.11441145Пример:11461147```python1148img1 = tkinter.PhotoImage(master=root, file='button.png')1149img1 = tkinter.PhotoImage(master=root, file='button-pressed.png')1150img1 = tkinter.PhotoImage(master=root, file='button-active.png')1151style = ttk.Style(root)1152style.element_create('Button.button', 'image',1153                     img1, ('pressed', img2), ('active', img3),1154                     border=(2, 4), sticky='we')1155```11561157Если в качестве значения *etype* используется «from», `element_create()` клонирует существующий элемент. *args* должен содержать имя темы, из которой будет склонирован элемент, и опционально – элемент для клонирования. Если этот элемент не указан, будет использован пустой элемент. *kw* игнорируется.11581159Пример:11601161```python1162style = ttk.Style(root)1163style.element_create('plain.background', 'from', 'default')1164```11651166Если в качестве значения *etype* используется «vsapi», `element_create()` создаёт новый элемент в текущей теме, внешний вид которого отрисовывается с помощью Microsoft Visual Styles API – API, отвечающего за темы оформления в Windows XP и Vista. *args* должен содержать класс и часть Visual Styles, как указано в документации Microsoft, за которыми следует опциональная последовательность кортежей состояний ttk и соответствующих значений состояний Visual Styles API. *kw* может иметь следующие опции:11671168**padding=padding**11691170Задаёт внутренний отступ элемента. *padding* – это список из не более четырёх целых чисел, задающих соответственно левый, верхний, правый и нижний отступы. Если указано меньше четырёх элементов, нижний по умолчанию равен верхнему, правый – левому, а верхний – левому. Иными словами, список из трёх чисел задаёт левый, вертикальный и правый отступы; список из двух чисел задаёт горизонтальный и вертикальный отступы; одно число задаёт одинаковый отступ со всех сторон виджета. Эту опцию нельзя использовать вместе с другими опциями.11711172**margins=padding**11731174Задаёт внешний отступ элемента. *padding* – это список из не более четырёх целых чисел, задающих соответственно левый, верхний, правый и нижний отступы. Эту опцию нельзя использовать вместе с другими опциями.11751176**width=width**11771178Задаёт ширину элемента. Если эта опция установлена, Visual Styles API не будет запрашиваться для рекомендуемого размера или части. Если эта опция установлена, *height* тоже должен быть установлен. Опции *width* и *height* нельзя смешивать с опциями *padding* или *margins*.11791180**height=height**11811182Задаёт высоту элемента. См. комментарии к *width*.11831184Пример:11851186```python1187style = ttk.Style(root)1188style.element_create('pin', 'vsapi', 'EXPLORERBAR', 3, [1189                     ('pressed', '!selected', 3),1190                     ('active', '!selected', 2),1191                     ('pressed', 'selected', 6),1192                     ('active', 'selected', 5),1193                     ('selected', 4),1194                     ('', 1)])1195style.layout('Explorer.Pin',1196             [('Explorer.Pin.pin', {'sticky': 'news'})])1197pin = ttk.Checkbutton(style='Explorer.Pin')1198pin.pack(expand=True, fill='both')1199```12001201Изменено в версии 3.13: Добавлена поддержка фабрики элементов «vsapi».12021203#### `element_names()`12041205Возвращает кортеж элементов, определённых в текущей теме.12061207#### `element_options(elementname)`12081209Возвращает кортеж опций *elementname*.12101211#### `theme_create(themename, parent=None, settings=None)`12121213Создаёт новую тему.12141215Ошибка, если *themename* уже существует. Если указан *parent*, новая тема наследует стили, элементы и раскладки от родительской темы. Если присутствуют *settings*, ожидается, что они имеют тот же синтаксис, что используется для [`theme_settings()`](https://python-all.ru/3.16/library/tkinter.ttk.html#tkinter.ttk.Style.theme_settings).12161217#### `theme_settings(themename, settings)`12181219Временно устанавливает текущую тему на *themename*, применяет указанные *settings*, а затем восстанавливает предыдущую тему.12201221Каждый ключ в *settings* является стилем, а каждое значение может содержать ключи «configure», «map», «layout» и «element create», и ожидается, что они имеют тот же формат, что указан методами [`Style.configure()`](https://python-all.ru/3.16/library/tkinter.ttk.html#tkinter.ttk.Style.configure), [`Style.map()`](https://python-all.ru/3.16/library/tkinter.ttk.html#tkinter.ttk.Style.map), [`Style.layout()`](https://python-all.ru/3.16/library/tkinter.ttk.html#tkinter.ttk.Style.layout) и [`Style.element_create()`](https://python-all.ru/3.16/library/tkinter.ttk.html#tkinter.ttk.Style.element_create) соответственно.12221223В качестве примера немного изменим Combobox для темы по умолчанию:12241225```python1226from tkinter import ttk1227import tkinter12281229root = tkinter.Tk()12301231style = ttk.Style()1232style.theme_settings("default", {1233   "TCombobox": {1234       "configure": {"padding": 5},1235       "map": {1236           "background": [("active", "green2"),1237                          ("!disabled", "green4")],1238           "fieldbackground": [("!disabled", "green3")],1239           "foreground": [("focus", "OliveDrab1"),1240                          ("!disabled", "OliveDrab2")]1241       }1242   }1243})12441245combo = ttk.Combobox().pack()12461247root.mainloop()1248```12491250#### `theme_names()`12511252Возвращает кортеж всех известных тем.12531254#### `theme_styles(themename=None)`12551256Возвращает кортеж всех стилей в теме *themename*. Если *themename* не указана, используется текущая тема.12571258Добавлено в версии 3.16.0a0 (не выпущено).12591260Доступность: Tk 9.0.12611262#### `theme_use(themename=None)`12631264Если *themename* не указан, возвращает текущую тему. В противном случае устанавливает текущую тему в *themename*, обновляет все виджеты и генерирует событие \<\<ThemeChanged\>\>.12651266### Компоновки12671268Компоновка может быть просто `None`, если она не принимает параметров, или словарём параметров, определяющим расположение элемента. Механизм компоновки использует упрощённую версию менеджера геометрии pack: для заданной начальной области каждый элемент получает свою часть.12691270Допустимые параметры/значения:12711272***side*: whichside**12731274Указывает, с какой стороны области размещать элемент; одно из значений: top, right, bottom или left. Если не указано, элемент занимает всю область.12751276***sticky*: nswe**12771278Указывает, где размещается элемент внутри выделенной ему части.12791280***unit*: 0 или 1**12811282Если установлено в 1, заставляет элемент и всех его потомков рассматривать как один элемент для целей [`Widget.identify()`](https://python-all.ru/3.16/library/tkinter.ttk.html#tkinter.ttk.Widget.identify) и т.д. Используется для таких вещей, как бегунки полосы прокрутки с захватами.12831284***children*: \[sublayout… \]**12851286Задаёт список элементов для размещения внутри элемента. Каждый элемент – это кортеж (или другой тип последовательности), где первый элемент – название компоновки, а второй – [Layout](https://python-all.ru/3.16/library/tkinter.ttk.html#layouts).12871288## Дополнительные виджеты12891290Следующие тематические виджеты дополняют набор виджетов `tkinter.ttk`. Каждый из них является тематическим аналогом классического виджета [`tkinter`](https://python-all.ru/3.16/library/tkinter.html#module-tkinter) с тем же именем и наследует общие методы [`Widget`](https://python-all.ru/3.16/library/tkinter.ttk.html#tkinter.ttk.Widget).12911292#### `class tkinter.ttk.Button(master=None, **kw)`12931294Виджет Ttk `Button`: отображает текстовую метку и/или изображение и выполняет команду при нажатии. Является тематическим аналогом [`tkinter.Button`](https://python-all.ru/3.16/library/tkinter.html#tkinter.Button) и наследует общие методы виджетов из [`Widget`](https://python-all.ru/3.16/library/tkinter.ttk.html#tkinter.ttk.Widget).12951296#### `invoke()`12971298Вызывает команду, связанную с кнопкой, и возвращает её результат.12991300#### `class tkinter.ttk.Checkbutton(master=None, **kw)`13011302Виджет Ttk `Checkbutton`, используется для управления логической переменной, которая переключается между состояниями. Является тематическим аналогом [`tkinter.Checkbutton`](https://python-all.ru/3.16/library/tkinter.html#tkinter.Checkbutton) и наследует общие методы виджетов из [`Widget`](https://python-all.ru/3.16/library/tkinter.ttk.html#tkinter.ttk.Widget).13031304#### `invoke()`13051306Переключает кнопку между выбранным и невыбранным состояниями, вызывает команду, связанную с кнопкой, и возвращает её результат.13071308#### `class tkinter.ttk.Entry(master=None, widget=None, **kw)`13091310Виджет Ttk `Entry`: отображает однострочную текстовую строку и позволяет пользователю редактировать её. Является тематическим аналогом [`tkinter.Entry`](https://python-all.ru/3.16/library/tkinter.html#tkinter.Entry) и наследует общие методы виджетов из [`Widget`](https://python-all.ru/3.16/library/tkinter.ttk.html#tkinter.ttk.Widget), а также методы редактирования из `tkinter.Entry`.13111312#### `bbox(index)`13131314Возвращает кортеж `(x, y, width, height)`, описывающий ограничивающий прямоугольник символа по указанному *index*.13151316Этот метод переопределяет унаследованный `Misc.bbox()`; используйте [`grid_bbox()`](https://python-all.ru/3.16/library/tkinter.html#tkinter.Misc.grid_bbox) для получения ограничивающего прямоугольника в сетке.13171318#### `identify(x, y)`13191320Возвращает имя элемента под точкой с координатами *x* и *y*, или пустую строку, если в этом месте нет элемента.13211322#### `validate()`13231324Принудительно проверяет запись и возвращает `True`, если проверка прошла успешно, и `False` в противном случае.13251326#### `class tkinter.ttk.Frame(master=None, **kw)`13271328Виджет Ttk `Frame`, контейнер для группировки и размещения других виджетов. Это тематический аналог [`tkinter.Frame`](https://python-all.ru/3.16/library/tkinter.html#tkinter.Frame), наследует общие методы виджетов от [`Widget`](https://python-all.ru/3.16/library/tkinter.ttk.html#tkinter.ttk.Widget).13291330#### `class tkinter.ttk.Label(master=None, **kw)`13311332Виджет Ttk `Label`, отображает текстовую метку и/или изображение. Это тематический аналог [`tkinter.Label`](https://python-all.ru/3.16/library/tkinter.html#tkinter.Label), наследует общие методы виджетов от [`Widget`](https://python-all.ru/3.16/library/tkinter.ttk.html#tkinter.ttk.Widget).13331334#### `class tkinter.ttk.Labelframe(master=None, **kw)`13351336Виджет Ttk `Labelframe`, контейнер, который рисует границу и заголовок вокруг своего содержимого. Это тематический аналог [`tkinter.LabelFrame`](https://python-all.ru/3.16/library/tkinter.html#tkinter.LabelFrame), наследует общие методы виджетов от [`Widget`](https://python-all.ru/3.16/library/tkinter.ttk.html#tkinter.ttk.Widget).13371338#### `class tkinter.ttk.Menubutton(master=None, **kw)`13391340Виджет Ttk `Menubutton`, отображает текстовую метку и/или изображение и открывает меню при нажатии. Это тематический аналог [`tkinter.Menubutton`](https://python-all.ru/3.16/library/tkinter.html#tkinter.Menubutton), наследует общие методы виджетов от [`Widget`](https://python-all.ru/3.16/library/tkinter.ttk.html#tkinter.ttk.Widget).13411342#### `class tkinter.ttk.OptionMenu(master, variable, default=None, *values, **kwargs)`13431344Виджет Ttk `OptionMenu` – [`Menubutton`](https://python-all.ru/3.16/library/tkinter.ttk.html#tkinter.ttk.Menubutton), открывающий меню с взаимоисключающими вариантами. *variable* – переменная, отслеживающая текущее выбранное значение; *default* – значение, устанавливаемое изначально; а *values* – записи для отображения в меню. Можно указать аргумент-ключевое слово *command* для задания вызываемого объекта, который вызывается с выбранным значением при каждом изменении выбора; аргумент *style* задаёт стиль, используемый базовой кнопкой меню; а аргумент *name* задаёт имя виджета Tk.13451346#### `set_menu(default=None, *values)`13471348Заменяет записи меню на *values*. Если указан *default*, также устанавливает его как текущее значение *variable*.13491350#### `destroy()`13511352Уничтожает этот виджет и связанное с ним меню.13531354Изменено в версии 3.14: Добавлена поддержка аргумента-ключевого слова *name*.13551356#### `class tkinter.ttk.Panedwindow(master=None, **kw)`13571358Виджет Ttk `Panedwindow`, отображает несколько подокон, расположенных вертикально или горизонтально. Пользователь может изменять относительные размеры подокон, перетаскивая разделитель между панелями. Это тематический аналог [`tkinter.PanedWindow`](https://python-all.ru/3.16/library/tkinter.html#tkinter.PanedWindow), наследует общие методы виджетов от [`Widget`](https://python-all.ru/3.16/library/tkinter.ttk.html#tkinter.ttk.Widget), а также методы `add()` и `panes()` от `tkinter.PanedWindow`.13591360#### `insert(pos, child, **kw)`13611362Вставляет панель, содержащую *child*, на позицию *pos*. *pos* может быть строкой `'end'`, целочисленным индексом или именем управляемого подокна. Если *child* уже управляется окном с панелями, перемещает его на указанную позицию. Любые аргументы-ключевые слова задают параметры панели.13631364#### `forget(child)`13651366Удаляет *child* из панелей; аргумент может быть целочисленным индексом или именем управляемого подокна.13671368Этот метод затеняет унаследованный менеджер геометрии `forget()`; используйте [`pack_forget()`](https://python-all.ru/3.16/library/tkinter.html#tkinter.Pack.pack_forget), [`grid_forget()`](https://python-all.ru/3.16/library/tkinter.html#tkinter.Grid.grid_forget) или [`place_forget()`](https://python-all.ru/3.16/library/tkinter.html#tkinter.Place.place_forget), чтобы удалить сам виджет из его менеджера.13691370#### `pane(pane, option=None, **kw)`13711372Запрашивает или изменяет параметры указанной *pane*, где *pane* – целочисленный индекс или имя управляемого подокна. Если аргументы не указаны, возвращает словарь значений параметров панели. Если указан *option*, возвращает значение этого параметра. В противном случае устанавливает параметры, переданные как аргументы-ключевые слова, в соответствующие значения.13731374#### `sashpos(index, newpos=None)`13751376Если указан *newpos*, устанавливает позицию разделителя номер *index* и возвращает его новую позицию. При этом могут быть скорректированы позиции соседних разделителей, чтобы они монотонно возрастали; позиции также ограничены диапазоном от 0 до общего размера виджета. Если *newpos* опущен, возвращает текущую позицию разделителя.13771378#### `class tkinter.ttk.Radiobutton(master=None, **kw)`13791380Виджет Ttk `Radiobutton`, используется в группе для управления одной общей переменной путём выбора одного из нескольких взаимоисключающих значений. Это тематический аналог [`tkinter.Radiobutton`](https://python-all.ru/3.16/library/tkinter.html#tkinter.Radiobutton), наследует общие методы виджетов от [`Widget`](https://python-all.ru/3.16/library/tkinter.ttk.html#tkinter.ttk.Widget).13811382#### `invoke()`13831384Устанавливает переменную параметра в значение кнопки, выбирает кнопку, вызывает команду, связанную с кнопкой, и возвращает её результат.13851386#### `class tkinter.ttk.Scale(master=None, **kw)`13871388Виджет Ttk `Scale` отображает ползунок, с помощью которого пользователь может выбрать числовое значение из диапазона, перемещая ползунок вдоль дорожки. Это тематизированный аналог [`tkinter.Scale`](https://python-all.ru/3.16/library/tkinter.html#tkinter.Scale), наследуемый общие методы виджетов из [`Widget`](https://python-all.ru/3.16/library/tkinter.ttk.html#tkinter.ttk.Widget).13891390#### `configure(cnf=None, **kw)`13911392Изменяет или запрашивает параметры виджета, например [`Widget.configure`](https://python-all.ru/3.16/library/tkinter.html#tkinter.Misc.configure). Кроме того, этот метод ограничивает значения `from` и `to` так, чтобы текущее значение оставалось в заданном ими диапазоне.13931394Изменено в версии 3.9: Теперь возвращает значение конфигурации, как и [`Widget.configure`](https://python-all.ru/3.16/library/tkinter.html#tkinter.Misc.configure).13951396#### `get(x=None, y=None)`13971398Возвращает текущее значение шкалы. Если заданы *x* и *y*, возвращает значение, соответствующее координатам пикселя *x*, *y*.13991400#### `class tkinter.ttk.Scrollbar(master=None, **kw)`14011402Виджет Ttk `Scrollbar` управляет областью просмотра связанного прокручиваемого виджета, такого как [`Treeview`](https://python-all.ru/3.16/library/tkinter.ttk.html#tkinter.ttk.Treeview), [`Entry`](https://python-all.ru/3.16/library/tkinter.ttk.html#tkinter.ttk.Entry) или [`tkinter.Text`](https://python-all.ru/3.16/library/tkinter.html#tkinter.Text). Это тематизированный аналог [`tkinter.Scrollbar`](https://python-all.ru/3.16/library/tkinter.html#tkinter.Scrollbar), наследующий общие методы виджетов из [`Widget`](https://python-all.ru/3.16/library/tkinter.ttk.html#tkinter.ttk.Widget), а также методы `set()` и `get()` из `tkinter.Scrollbar`.14031404#### `class tkinter.ttk.Separator(master=None, **kw)`14051406Виджет Ttk `Separator` отображает горизонтальную или вертикальную разделительную линию. У него нет прямого аналога в [`tkinter`](https://python-all.ru/3.16/library/tkinter.html#module-tkinter), и он наследует общие методы виджетов из [`Widget`](https://python-all.ru/3.16/library/tkinter.ttk.html#tkinter.ttk.Widget).14071408#### `class tkinter.ttk.Sizegrip(master=None, **kw)`14091410Виджет Ttk `Sizegrip` отображает ручку захвата, позволяющую пользователю изменять размер родительского окна верхнего уровня, нажимая и перетаскивая ручку, обычно расположенную в правом нижнем углу. У него нет прямого аналога в [`tkinter`](https://python-all.ru/3.16/library/tkinter.html#module-tkinter), и он наследует общие методы виджетов из [`Widget`](https://python-all.ru/3.16/library/tkinter.ttk.html#tkinter.ttk.Widget).14111412#### `class tkinter.ttk.LabeledScale(master=None, variable=None, from_=0, to=10, **kw)`14131414[`Frame`](https://python-all.ru/3.16/library/tkinter.ttk.html#tkinter.ttk.Frame), содержащий [`Scale`](https://python-all.ru/3.16/library/tkinter.ttk.html#tkinter.ttk.Scale) и [`Label`](https://python-all.ru/3.16/library/tkinter.ttk.html#tkinter.ttk.Label), показывающий текущее значение шкалы. *variable* – это [`IntVar`](https://python-all.ru/3.16/library/tkinter.html#tkinter.IntVar), отслеживаемый шкалой (если он не задан, создаётся новый), а *from\_* и *to* определяют диапазон шкалы.14151416#### `destroy()`14171418Уничтожает этот виджет и удаляет колбэк отслеживания, зарегистрированный для связанной переменной.14191420#### `class tkinter.ttk.LabelFrame(master=None, **kw)`14211422Псевдоним [`Labelframe`](https://python-all.ru/3.16/library/tkinter.ttk.html#tkinter.ttk.Labelframe), сохранённый для совместимости имён с [`tkinter.LabelFrame`](https://python-all.ru/3.16/library/tkinter.html#tkinter.LabelFrame).14231424#### `class tkinter.ttk.PanedWindow(master=None, **kw)`14251426Псевдоним [`Panedwindow`](https://python-all.ru/3.16/library/tkinter.ttk.html#tkinter.ttk.Panedwindow), сохранённый для совместимости имён с [`tkinter.PanedWindow`](https://python-all.ru/3.16/library/tkinter.html#tkinter.PanedWindow).1427