tkinter — интерфейс Python к Tcl/Tk
Исходный код: Lib/tkinter/__init__.py
Пакет tkinter («интерфейс Tk») — это стандартный интерфейс Python к GUI-инструментарию Tcl/Tk. И Tk, и tkinter доступны на большинстве платформ Unix, включая macOS, а также в системах Windows.
Запуск python -m tkinter из командной строки должен открыть окно с демонстрацией простого интерфейса Tk. Это позволит убедиться, что tkinter правильно установлена в системе, а также узнать версию установленной Tcl/Tk, чтобы обратиться к документации Tcl/Tk для этой версии.
Tkinter поддерживает различные версии Tcl/Tk, собранные как с поддержкой потоков, так и без неё. Минимальная поддерживаемая версия — Tcl/Tk 8.5.12; официальные бинарные выпуски Python включают Tcl/Tk 8.6. Дополнительную информацию о поддерживаемых версиях см. в исходном коде модуля _tkinter.
Изменено в версии 3.11: Поддержка версий Tcl/Tk старше 8.5.12 была удалена.
Tkinter — не тонкая оболочка: в него добавлено немало собственной логики, чтобы сделать работу с ним более привычной для Python. В этой документации основное внимание уделяется этим дополнениям и изменениям; за подробностями, которые остались без изменений, обращайтесь к официальной документации Tcl/Tk.
Примечание
В Tcl/Tk 8.5 (2007) появился современный набор тематических компонентов пользовательского интерфейса, а также новый API для работы с ними (см. tkinter.ttk). Оба API — старый и новый — по-прежнему доступны. В большинстве документов, которые можно найти в интернете, используется старый API, и они могут быть сильно устаревшими.
Это необязательный модуль. Если он отсутствует в вашей сборке CPython, обратитесь к документации вашего дистрибутива (то есть того, кто предоставил вам Python). Если вы являетесь поставщиком дистрибутива, см. раздел Требования к необязательным модулям.
См. также
-
- TkDocs
-
Подробное руководство по созданию пользовательских интерфейсов с помощью Tkinter. В нём объясняются основные понятия и демонстрируются рекомендуемые подходы с использованием современного API.
-
- Справочник Tkinter 8.5: GUI для Python
-
Справочная документация по Tkinter 8.5 с описанием доступных классов, методов и параметров.
Ресурсы по Tcl/Tk:
-
- Команды Tk
-
Подробный справочник по каждой из базовых команд Tcl/Tk, используемых Tkinter.
-
- Главная страница Tcl/Tk
-
Дополнительная документация и ссылки на разработку ядра Tcl/Tk.
Книги:
-
- Современный Tkinter для занятых разработчиков на Python
-
Автор — Mark Roseman. (ISBN 978-1999149567)
-
- Разработка GUI на Python с помощью Tkinter
-
Автор — Alan D. Moore. (ISBN 978-1788835886)
-
- Программирование на Python
-
Автор — Mark Lutz; книга содержит превосходное описание Tkinter. (ISBN 978-0596158101)
-
- Tcl и инструментарий Tk (2-е издание)
-
Авторы — John Ousterhout, создатель Tcl/Tk, и Ken Jones; Tkinter в книге не рассматривается. (ISBN 978-0321336330)
Архитектура
Tcl/Tk — это не одна библиотека, а несколько отдельных модулей, каждый из которых выполняет свои функции и имеет собственную официальную документацию. В бинарные выпуски Python также включён дополнительный модуль.
- Tcl
-
Tcl — динамический интерпретируемый язык программирования, подобно Python. Хотя его можно использовать самостоятельно как язык программирования общего назначения, чаще всего его встраивают в приложения на C в качестве скриптового движка или интерфейса к инструментарию Tk. Библиотека Tcl предоставляет интерфейс C для создания и управления одним или несколькими экземплярами интерпретатора Tcl, выполнения команд и скриптов Tcl в этих экземплярах, а также добавления пользовательских команд, реализованных на Tcl или C. У каждого интерпретатора есть очередь событий и средства для отправки и обработки событий. В отличие от Python, модель выполнения Tcl основана на кооперативной многозадачности; Tkinter устраняет это различие (подробности см. в разделе Модель потоков).
- Tk
-
Tk — это пакет Tcl, реализованный на C и добавляющий пользовательские команды для создания и управления виджетами GUI. Каждый объект
Tkсодержит собственный экземпляр интерпретатора Tcl с загруженным Tk. Виджеты Tk допускают широкую настройку, однако их внешний вид кажется устаревшим. Tk использует очередь событий Tcl для создания и обработки событий GUI. - Ttk
-
Themed Tk (Ttk) — это более новое семейство виджетов Tk, внешний вид которых на разных платформах значительно лучше, чем у многих классических виджетов Tk. Начиная с версии Tk 8.5, Ttk входит в состав Tk. Привязки для Python доступны в отдельном модуле
tkinter.ttk.
Внутри Tk и Ttk используют средства базовой операционной системы: Xlib в Unix/X11, Cocoa в macOS и GDI в Windows.
Когда приложение Python использует класс Tkinter, например для создания виджета, модуль tkinter сначала формирует строку команды Tcl/Tk. Затем эта строка команды Tcl передаётся внутреннему бинарному модулю _tkinter, который вызывает интерпретатор Tcl для её выполнения. После этого интерпретатор Tcl обращается к пакетам Tk и/или Ttk, которые, в свою очередь, вызывают Xlib, Cocoa или GDI.
Модули Tkinter
Поддержка Tkinter распределена между несколькими модулями. Большинству приложений понадобятся основной модуль tkinter, а также модуль tkinter.ttk, предоставляющий современный набор тематических виджетов и API:
from tkinter import * from tkinter import ttk
К модулям, обеспечивающим поддержку Tk, относятся:
-
tkinter -
Основной модуль Tkinter.
-
tkinter.colorchooser -
Диалоговое окно для выбора цвета пользователем.
-
tkinter.commondialog -
Базовый класс для диалоговых окон, определённых в других перечисленных здесь модулях.
-
tkinter.filedialog -
Стандартные диалоговые окна, позволяющие пользователю указать файл для открытия или сохранения.
-
tkinter.font -
Вспомогательные средства для работы со шрифтами.
-
tkinter.messagebox -
Доступ к стандартным диалоговым окнам Tk.
-
tkinter.scrolledtext -
Текстовый виджет со встроенной вертикальной полосой прокрутки.
-
tkinter.simpledialog -
Простые диалоговые окна и удобные функции.
-
tkinter.ttk -
Набор тематических виджетов, появившийся в Tk 8.5 и предлагающий современные альтернативы многим классическим виджетам основного модуля
tkinter.
Дополнительные модули:
-
_tkinter -
Бинарный модуль, содержащий низкоуровневый интерфейс к Tcl/Tk. Он автоматически импортируется основным модулем
tkinterи не должен напрямую использоваться разработчиками приложений. Обычно это разделяемая библиотека (или DLL), но в некоторых случаях она может быть статически скомпонована с интерпретатором Python. -
idlelib -
Интегрированная среда разработки и обучения Python (IDLE). Основана на
tkinter. -
tkinter.constants -
Символьные константы, которые можно использовать вместо строк при передаче различных параметров вызовам Tkinter. Автоматически импортируются основным модулем
tkinter. -
tkinter.dnd -
(экспериментальный) Поддержка перетаскивания для
tkinter. Эта возможность устареет после замены на Tk DND. -
turtle -
Черепашья графика в окне Tk.
Краткое руководство по Tkinter
Этот раздел не предназначен для исчерпывающего изучения Tk или Tkinter. Для этого обратитесь к одному из внешних ресурсов, перечисленных выше. Вместо этого здесь кратко рассматривается, как выглядит приложение Tkinter, описываются основные концепции Tk и объясняется устройство оболочки Tkinter.
Остальная часть этого раздела поможет определить, какие классы, методы и параметры понадобятся в приложении Tkinter и где найти более подробную документацию по ним, включая официальное справочное руководство Tcl/Tk.
Программа Hello World
Начнём с разбора приложения «Hello World» на Tkinter. Это не самая короткая программа из возможных, но в ней достаточно кода, чтобы показать некоторые важные понятия, которые необходимо знать.
from tkinter import * from tkinter import ttk root = Tk() frm = ttk.Frame(root, padding=10) frm.grid() ttk.Label(frm, text="Hello World!").grid(column=0, row=0) ttk.Button(frm, text="Quit", command=root.destroy).grid(column=1, row=0) root.mainloop()
После импортов следующая строка создаёт экземпляр класса Tk, который инициализирует Tk и создаёт связанный с ним интерпретатор Tcl. Также создаётся окно верхнего уровня, называемое корневым окном; оно служит главным окном приложения.
Следующая строка создаёт виджет-контейнер, который в данном случае будет содержать метку и создаваемую далее кнопку. Контейнер размещается внутри корневого окна.
Следующая строка создаёт виджет-метку со статической текстовой строкой. Метод grid() задаёт относительное расположение метки внутри содержащего её виджета-контейнера — подобно тому, как это работает в таблицах HTML.
Затем создаётся виджет-кнопка и размещается справа от метки. При нажатии кнопка вызовет метод destroy() корневого окна.
Наконец, метод mainloop() отображает всё на экране и обрабатывает действия пользователя до завершения программы.
Важные концепции Tk
Даже эта простая программа иллюстрирует следующие ключевые концепции Tk:
- виджеты
-
Пользовательский интерфейс Tkinter состоит из отдельных виджетов. Каждый виджет представлен объектом Python, созданным на основе таких классов, как
ttk.Frame,ttk.Labelиttk.Button. - иерархия виджетов
-
Виджеты располагаются в виде иерархии. Метка и кнопка находились внутри контейнера, который, в свою очередь, находился внутри корневого окна. При создании каждого дочернего виджета его родительский виджет передаётся первым аргументом конструктору виджета.
- параметры настройки
-
У виджетов есть параметры настройки, изменяющие их внешний вид и поведение, например текст метки или кнопки. У разных классов виджетов разные наборы параметров.
- управление геометрией
-
При создании виджеты не добавляются в пользовательский интерфейс автоматически. Менеджер геометрии, например
grid, управляет их расположением в пользовательском интерфейсе. - цикл обработки событий
-
Tkinter реагирует на действия пользователя и изменения программы, а также обновляет экран только при активном выполнении цикла обработки событий. Если программа не выполняет цикл обработки событий, пользовательский интерфейс не будет обновляться.
Как Tkinter оборачивает Tcl/Tk
Когда приложение использует классы и методы Tkinter, внутри Tkinter формируются строки, представляющие команды Tcl/Tk, и эти команды выполняются в интерпретаторе Tcl, связанном с экземпляром Tk приложения.
При поиске в справочной документации, подходящего метода или параметра, адаптации существующего кода или отладке приложения Tkinter может быть полезно понять, как выглядят лежащие в основе команды Tcl/Tk.
Для иллюстрации приведём эквивалент основной части приведённого выше скрипта Tkinter на Tcl/Tk.
ttk::frame .frm -padding 10 grid .frm grid [ttk::label .frm.lbl -text "Hello World!"] -column 0 -row 0 grid [ttk::button .frm.btn -text "Quit" -command "destroy ."] -column 1 -row 0
Синтаксис Tcl похож на синтаксис многих командных оболочек: первое слово — это выполняемая команда, после которой через пробелы указываются аргументы. Не вдаваясь в подробности, обратите внимание на следующее:
- Команды создания виджетов (например,
ttk::frame) соответствуют классам виджетов в Tkinter. - Параметры виджетов Tcl (например,
-text) соответствуют именованным аргументам в Tkinter. - В Tcl виджеты обозначаются путевым именем (например,
.frm.btn), тогда как Tkinter использует не имена, а ссылки на объекты. - Положение виджета в иерархии кодируется в его (иерархическом) путевом имени, в котором в качестве разделителя пути используется
.(точка). Путевое имя корневого окна — просто.(точка). В Tkinter иерархия задаётся не путевыми именами, а указанием родительского виджета при создании каждого дочернего виджета. - Операции, реализованные в Tcl как отдельные команды (например,
gridилиdestroy), представлены в Tkinter как методы объектов-виджетов. Как вы вскоре увидите, иногда Tcl использует конструкции, похожие на вызовы методов объектов-виджетов и более близкие к используемым в Tkinter.
Как сделать…? Что делает параметр…?
Если вы не знаете, как что-либо сделать в Tkinter, и не можете сразу найти ответ в используемом руководстве или справочной документации, вам могут помочь несколько приёмов.
Прежде всего помните, что особенности работы отдельных виджетов могут различаться в разных версиях Tkinter и Tcl/Tk. Если вы ищете документацию, убедитесь, что она соответствует установленным в системе версиям Python и Tcl/Tk.
При поиске информации об использовании API полезно знать точное имя используемого класса, параметра или метода. Интроспекция, выполняемая в интерактивной оболочке Python или с помощью print(), поможет определить, что именно вам нужно.
Чтобы узнать, какие параметры настройки доступны у виджета, вызовите его метод configure(). Он возвращает словарь с различными сведениями о каждом объекте, включая значения по умолчанию и текущие значения. Чтобы получить только имена параметров, используйте keys().
btn = ttk.Button(frm, ...) print(btn.configure().keys())
Поскольку у большинства виджетов много общих параметров настройки, полезно выяснить, какие из них относятся только к конкретному классу виджетов. Для этого можно сравнить список параметров со списком у более простого виджета, например контейнера.
print(set(btn.configure().keys()) - set(frm.configure().keys()))
Аналогичным образом доступные методы объекта-виджета можно найти с помощью стандартной функции dir(). Если вы это сделаете, то увидите, что общих методов виджетов больше 200, поэтому также полезно определить, какие из них специфичны для класса виджета.
print(dir(btn)) print(set(dir(btn)) - set(dir(frm)))
Модель потоков
Модели потоков Python и Tcl/Tk сильно различаются, и tkinter пытается устранить эти различия. Если вы используете потоки, следует учитывать это.
С интерпретатором Python может быть связано множество потоков. В Tcl можно создавать несколько потоков, но с каждым потоком связан отдельный экземпляр интерпретатора Tcl. Потоки могут создавать более одного экземпляра интерпретатора, однако каждый экземпляр интерпретатора может использоваться только создавшим его потоком.
Каждый объект Tk, созданный с помощью tkinter, содержит интерпретатор Tcl. Он также отслеживает, какой поток создал этот интерпретатор. Вызовы tkinter можно выполнять из любого потока Python. Если вызов поступает из потока, отличного от того, который создал объект Tk, внутри интерпретатора в очередь событий помещается событие; после его обработки результат возвращается вызвавшему потоку Python.
Приложения Tcl/Tk обычно управляются событиями: после инициализации интерпретатор запускает цикл обработки событий (то есть Tk.mainloop) и реагирует на события. Поскольку он однопоточный, обработчики событий должны быстро завершаться, иначе они будут блокировать обработку других событий. Чтобы этого избежать, длительные вычисления не следует выполнять в обработчике событий: их нужно либо разбивать на небольшие части с помощью таймеров, либо выполнять в другом потоке. Это отличается от многих GUI-инструментариев, в которых GUI выполняется в отдельном потоке, не связанном с кодом приложения, включая обработчики событий.
Если интерпретатор Tcl не выполняет цикл обработки событий и не обрабатывает события, любые вызовы tkinter из потоков, отличных от потока, в котором работает интерпретатор Tcl, завершатся ошибкой.
Существуют некоторые особые случаи:
- Библиотеки Tcl/Tk, собранные без поддержки потоков, теперь встречаются редко: входящая в комплект Tcl/Tk 8.6 собрана с поддержкой потоков, поэтому этот случай возникает только в некоторых старых сборках без поддержки потоков. Если библиотека не поддерживает потоки,
tkinterвызывает её из исходного потока Python, даже если он отличается от потока, создавшего интерпретатор Tcl. Глобальная блокировка гарантирует, что одновременно выполняется только один вызов. - Хотя
tkinterпозволяет создать несколько экземпляров объектаTk(каждый со своим интерпретатором), все интерпретаторы одного потока используют общую очередь событий, что быстро приводит к проблемам. На практике не создавайте одновременно более одного экземпляраTk. Если это необходимо, лучше создавать их в отдельных потоках и убедиться, что используется сборка Tcl/Tk с поддержкой потоков. - Блокирующие обработчики событий — не единственный способ помешать интерпретатору Tcl вернуться к циклу обработки событий. Можно даже запустить несколько вложенных циклов обработки событий или полностью отказаться от такого цикла. Если вы предпринимаете что-либо необычное с событиями или потоками, учитывайте эти возможности.
- Существует несколько отдельных функций
tkinter, которые в настоящее время работают только при вызове из потока, создавшего интерпретатор Tcl.
Краткий справочник
Настройка параметров
Параметры управляют такими характеристиками виджета, как цвет и ширина границы. Параметры можно задать тремя способами:
- При создании объекта, используя именованные аргументы
-
fred = Button(self, fg="red", bg="blue")
- После создания объекта, обращаясь к имени параметра как к индексу словаря
-
fred["fg"] = "red" fred["bg"] = "blue"
- Используя метод config() для обновления нескольких атрибутов после создания объекта
-
fred.config(fg="red", bg="blue")
Примечание
Параметры fg и bg, используемые здесь, а также другие параметры, управляющие внешним видом виджета, относятся к классическим виджетам tkinter. Рекомендуемые во введении тематические виджеты tkinter.ttk их не принимают; вместо этого оформляйте тематический виджет с помощью класса ttk.Style. Три приведённых выше способа задания параметра применимы к обоим наборам виджетов.
Полное описание заданного параметра и его поведения см. на справочных страницах Tk для соответствующего виджета.
Обратите внимание, что на справочных страницах для каждого виджета перечислены «СТАНДАРТНЫЕ ПАРАМЕТРЫ» и «ПАРАМЕТРЫ, СПЕЦИФИЧНЫЕ ДЛЯ ВИДЖЕТА». Первые — это список параметров, общих для многих виджетов, вторые — параметры, специфичные для данного виджета. Стандартные параметры описаны на справочной странице options(3).
В этом документе стандартные параметры не отделены от параметров, специфичных для виджета. Некоторые параметры неприменимы к некоторым типам виджетов. Поддержка конкретного параметра зависит от класса виджета: у кнопок есть параметр command, а у меток — нет.
Поддерживаемые виджетом параметры перечислены на его справочной странице. Их также можно получить во время выполнения, вызвав метод config() без аргументов или метод keys() этого виджета. Возвращаемое значение этих вызовов — словарь, ключами которого являются имена параметров в виде строк (например, 'relief'), а значениями — кортежи из 5 элементов.
Некоторые параметры, например bg, являются синонимами распространённых параметров с длинными именами (bg — сокращённая запись для «background»).
Индекс | Значение | Пример |
|---|---|---|
0 | имя параметра |
|
1 | имя параметра для поиска в базе данных |
|
2 | класс параметра для поиска в базе данных |
|
3 | значение по умолчанию |
|
4 | текущее значение |
|
Пример:
>>> print(fred.config())
{'relief': ('relief', 'relief', 'Relief', 'raised', 'groove')}
Разумеется, напечатанный словарь будет содержать все доступные параметры и их значения. Это лишь пример.
Управление геометрией
Создание виджета не приводит к его отображению. Виджет появляется только после передачи менеджеру геометрии, который вычисляет его размер и положение внутри контейнера и поддерживает актуальность макета при изменении размеров контейнера или его содержимого. Забыть вызвать менеджер геометрии — распространённая ошибка новичков: виджет создан, но ничего не отображается.
В Tk предусмотрено три менеджера геометрии. Каждый из них доступен всем виджетам, поэтому любой виджет может управляться любым из них (однако см. предупреждение ниже о несовместимости grid и pack). Выбор зависит от нужного вам макета.
-
grid -
Располагает виджеты в двумерной таблице из строк и столбцов. Это самый гибкий менеджер и вариант по умолчанию: макеты, для которых иначе потребовалось бы несколько вложенных фреймов, часто можно представить в виде одной сетки, а для строк и столбцов можно задать правила распределения дополнительного пространства.
ttk.Label(frm, text="Name:").grid(column=0, row=0, sticky="w") ttk.Entry(frm).grid(column=1, row=0) ttk.Button(frm, text="OK").grid(column=1, row=1, sticky="e")
-
pack -
Располагает виджеты вдоль одной из сторон контейнера —
"top"(по умолчанию),"bottom","left"или"right"— и может заставлять их заполнять или занимать всё оставшееся пространство. Удобен для простых компоновок, например одной строки или столбца виджетов либо области содержимого, ограниченной панелью инструментов и строкой состояния.toolbar.pack(side="top", fill="x") status.pack(side="bottom", fill="x") body.pack(side="left", expand=True, fill="both")
-
place -
Размещает каждый виджет в заданной точке, указанной либо абсолютными расстояниями на экране, либо долями размера контейнера. Этот менеджер обеспечивает наибольший контроль, но наименьшую автоматизацию и используется реже всего; он подходит для особых случаев, например перекрывающихся виджетов или точных пользовательских макетов.
background.place(x=0, y=0, relwidth=1.0, relheight=1.0) badge.place(relx=1.0, rely=0.0, anchor="ne")
Макеты строятся путём вложения: размещайте виджеты grid или pack, в том числе фреймы, внутри фрейма или окна верхнего уровня. Окнами верхнего уровня управляет оконный менеджер ОС. Классические и тематические виджеты tkinter.ttk можно использовать совместно.
Предупреждение
Не применяйте pack() и grid() к двум виджетам, у которых общий контейнер. Эти два менеджера по-разному согласуют размеры, и приложение может зависнуть, если они будут снова и снова менять размер контейнера в противодействие друг другу. Чтобы сочетать их, размещайте виджеты каждого менеджера в отдельном фрейме.
Полный набор параметров, принимаемых каждым менеджером, вместе с их значениями и значениями по умолчанию описан в разделах Grid.grid_configure(), Pack.pack_configure() и Place.place_configure(); см. также справочные страницы grid(3tk), pack(3tk) и place(3tk).
Связь переменных с виджетами
Некоторые виджеты могут напрямую связывать своё текущее значение с переменной программы, чтобы оба значения оставались синхронизированными. Эта связь настраивается такими параметрами, как variable, textvariable, value, onvalue и offvalue: при изменении виджета пользователем обновляется переменная, а при изменении переменной виджет перерисовывается в соответствии с новым значением.
Виджет можно связать только с объектом Variable, но не с обычной переменной Python. Это ограничение связано не с tkinter, а с различиями между двумя языками: связь требует, чтобы Tcl получал уведомление при каждом изменении значения, а Python не позволяет реагировать на присваивание обычной переменной. Объект Variable решает эту задачу, храня значение внутри интерпретатора Tcl и предоставляя к нему доступ через явные методы get() и set().
Для распространённых типов есть готовые подклассы: StringVar, IntVar, DoubleVar и BooleanVar. Передайте такой объект в качестве параметра textvariable (или variable) виджета, а затем считывайте и обновляйте его с помощью методов get() и set(); виджет будет отслеживать его без дополнительных действий с вашей стороны.
Сохраняйте ссылку на переменную, пока она используется виджетом, например храните её в качестве атрибута. При сборке мусора объект Variable удаляет соответствующую переменную Tcl, разрывая связь с виджетом (см. Variable).
Например:
import tkinter as tk
from tkinter import ttk
root = tk.Tk()
# Create the application variable and give it an initial value.
contents = tk.StringVar(value="this is a variable")
# Tell the entry widget to track the variable.
entry = ttk.Entry(root, textvariable=contents)
entry.pack()
# Print the current value whenever the user presses Return.
def print_contents(event):
print("The current entry content is:", contents.get())
entry.bind("<Return>", print_contents)
# Setting the variable from the program updates the entry through the
# same link.
def clear():
contents.set("")
ttk.Button(root, text="Clear", command=clear).pack()
root.mainloop()
Оконный менеджер
Оконный менеджер — это часть рабочего стола, отвечающая за строку заголовка, границу и элементы управления, отображаемые вокруг каждого окна верхнего уровня, а также за такие его характеристики, как заголовок, положение, размер и значок. Tk предоставляет доступ к ним через примесь Wm, от которой наследуются корневое окно Tk и все окна Toplevel. Поэтому методы оконного менеджера вызываются непосредственно для окна верхнего уровня. У каждого метода есть короткое имя и эквивалентное имя с префиксом wm_, например title() и wm_title().
Эти методы действуют на окно верхнего уровня независимо от того, состоит ли его содержимое из классических виджетов или тематических виджетов tkinter.ttk. Чтобы получить окно верхнего уровня, содержащее произвольный виджет, вызовите его метод winfo_toplevel().
Например:
import tkinter as tk
from tkinter import ttk
root = tk.Tk()
root.title("My Application")
root.geometry("640x480")
root.minsize(320, 240)
ttk.Label(root, text="Hello").pack(padx=20, pady=20)
root.mainloop()
Wm.
Типы данных параметров Tk
Многие параметры виджетов, описанные в справочнике, принимают значения нескольких распространённых типов, представленных ниже.
- anchor
-
Допустимы направления по сторонам света:
"n","ne","e","se","s","sw","w","nw", а также"center". - bitmap
-
Встроено десять именованных растровых изображений:
'error','gray12','gray25','gray50','gray75','hourglass','info','questhead','question','warning'. Чтобы указать имя файла растрового изображения X, задайте полный путь к файлу с префиксом@, например"@/usr/contrib/bitmap/gumby.bit". - boolean
-
Можно передать целые числа 0 или 1 либо строки
"yes"или"no". - callback
-
Это любая функция Python, не принимающая аргументов. Например:
def print_it(): print("hi there") fred["command"] = print_it - color
-
Цвета можно задавать именами цветов X из файла rgb.txt или строками, представляющими значения RGB в диапазонах: 4 бита —
"#RGB", 8 бит —"#RRGGBB", 12 бит —"#RRRGGGBBB"или 16 бит —"#RRRRGGGGBBBB", где R, G, B обозначают любую допустимую шестнадцатеричную цифру. Список именованных цветов см. на справочной странице colors(3tk). - cursor
-
Имя курсора мыши, отображаемого, когда указатель находится над виджетом. Tk предоставляет переносимый набор имён курсоров, доступных на всех платформах (например,
"arrow","watch","cross"или"hand2"); также можно использовать стандартные имена курсоров X изcursorfont.hбез префиксаXC_(так,XC_hand2становится"hand2"). Полный список имён, включая платформозависимые, приведён на справочной странице cursors(3tk). Можно также указать собственные файлы растрового изображения и маски. В Windows можно напрямую использовать файл курсора (.curили.ani), указав путь к нему с префиксом@, например"@C:/cursors/bart.ani". - distance
-
Расстояния на экране можно задавать в пикселях или абсолютных единицах. Пиксели указываются числами, а абсолютные расстояния — строками, где последняя буква обозначает единицу измерения:
cдля сантиметров,iдля дюймов,mдля миллиметров,pдля типографских пунктов. Например, 3,5 дюйма задаются как"3.5i". - font
-
Tk использует описание шрифта, например
{courier 10 bold}; вtkinterего удобнее всего передавать в виде кортежа из(family, size, *styles)(или в виде эквивалентной строки"Courier 10 bold"). Положительные значения размера шрифта задаются в пунктах, отрицательные — в пикселях. - geometry
-
Это строка вида
widthxheight, где ширина и высота измеряются в пикселях для большинства виджетов (в символах — для виджетов, отображающих текст). Например:fred["geometry"] = "200x100". - justify
-
Допустимые значения — строки:
"left","center"и"right". - region
-
Это строка из четырёх элементов, разделённых пробелами, каждый из которых представляет допустимое расстояние (см. выше). Например,
"2 3 4 5","3i 2i 4.5i 2i"и"3c 2c 4c 10.43c"— допустимые области. - relief
-
Определяет стиль границы виджета. Допустимые значения:
"raised","sunken","flat","groove","ridge"и"solid". - scrollcommand
-
Почти всегда это метод
set()некоторого виджета полосы прокрутки, но им может быть любой метод виджета, принимающий один аргумент. - wrap
-
Допустимые значения:
"none","char"или"word".
Привязки и события
Метод bind команды виджета позволяет отслеживать определённые события и вызывать функцию обратного вызова при возникновении события соответствующего типа. Метод bind имеет следующий формат:
def bind(self, sequence, func, add=''):
где:
- sequence
-
строка, обозначающая тип целевого события. Физические события задаются в формате
<modifier-modifier-type-detail>(например,"<Enter>"или"<Control-Button-1>"); определённые приложением виртуальные события задаются двойными угловыми скобками, например"<<Paste>>". (Подробнее см. на справочной странице bind(3tk).) - func
-
функция Python, принимающая один аргумент, которая вызывается при возникновении события. В качестве аргумента передаётся экземпляр Event. (Функции, используемые таким образом, обычно называют функциями обратного вызова.)
- add
-
необязательный параметр, принимающий значение
''или'+'. Пустая строка означает, что эта привязка заменит все остальные привязки, связанные с данным событием. Значение'+'означает, что эта функция будет добавлена в список функций, привязанных к данному типу события.
Например:
def turn_red(self, event):
event.widget["activeforeground"] = "red"
self.button.bind("<Enter>", self.turn_red)
Обратите внимание, как в функции обратного вызова turn_red() используется поле widget события. Это поле содержит виджет, получивший событие X. В следующей таблице перечислены остальные доступные поля события и соответствующие им обозначения в Tk, которые могут пригодиться при обращении к справочным страницам Tk.
Tk | Поле события Tkinter | Tk | Поле события Tkinter |
|---|---|---|---|
%f | focus | %A | char |
%h | height | %E | send_event |
%k | keycode | %K | keysym |
%s | state | %N | keysym_num |
%t | time | %T | type |
%w | width | %W | widget |
%x | x | %X | x_root |
%y | y | %Y | y_root |
%# | serial | %b | num |
%d | detail | %D | delta |
Указанный выше параметр add влияет только на создаваемые вами привязки. Каждый виджет также наследует привязки класса, реализующие его стандартное поведение: например, виджет Text привязывает сочетание Control-t к перестановке двух символов. Они описаны в разделе привязок справочной страницы Tk для соответствующего виджета (например, text(3tk) или entry(3tk)).
Привязки класса обрабатываются отдельно от пользовательских, поэтому добавление собственной привязки события не заменяет стандартную: выполняются обе. Чтобы отключить нежелательную стандартную привязку, привяжите событие к виджету и верните из функции обратного вызова строку "break".
Параметр индекса
Для ряда виджетов требуется передавать параметры «индекса». Они указывают на определённое место в виджете Text, на конкретные символы в виджете Entry или на определённые пункты меню в виджете Menu.
- Индексы виджета Entry (index, view index и т. д.)
-
У виджетов Entry есть методы и параметры, ссылающиеся на позиции символов в отображаемом тексте. Если требуется индекс, можно передать:
- целое число, обозначающее числовую позицию символа, отсчитываемую от начала текста с 0;
- строку
"anchor", обозначающую точку привязки выделения, заданную методами выделения виджета; - строку
"end", обозначающую позицию сразу после последнего символа; - строку
"insert", обозначающую символ сразу после курсора вставки; - строки
"sel.first"и"sel.last", обозначающие первый символ выделения и позицию сразу после последнего (использовать их при отсутствии выделения нельзя); - строку, состоящую из
@и следующего за ним целого числа, например"@6"; целое число интерпретируется как координата пикселя x в системе координат поля ввода и задаёт символ, расположенный в этой точке.
- Индексы виджета Text
-
Синтаксис индексов для виджетов Text очень широк; лучше всего он описан на справочных страницах Tk.
- Индексы меню (menu.invoke(), menu.entryconfig() и т. д.)
-
Некоторые параметры и методы меню работают с определёнными пунктами меню. Если для параметра или аргумента требуется индекс меню, можно передать:
- целое число, обозначающее числовую позицию пункта в виджете, отсчитываемую сверху с 0;
- строку
"active", обозначающую пункт меню, на котором сейчас находится курсор; - строку
"last", обозначающую последний пункт меню; - строку, состоящую из
@и следующего за ним целого числа, например"@6"; целое число интерпретируется как координата пикселя y в системе координат меню; - строку
"none", означающую отсутствие пункта меню; чаще всего она используется с menu.activate() для деактивации всех пунктов, и, наконец, - текстовую строку, сопоставляемую с меткой пункта меню при поиске сверху вниз. Обратите внимание, что этот тип индекса рассматривается после всех остальных. Поэтому совпадения для пунктов меню с метками
last,activeилиnoneмогут вместо этого интерпретироваться как указанные выше литералы.
Изображения
Изображения различных форматов можно создавать с помощью соответствующего подкласса tkinter.Image:
-
BitmapImage— для изображений в формате XBM. -
PhotoImage— для изображений в форматах PGM, PPM, GIF и PNG. Последний поддерживается начиная с Tk 8.6.
Изображения обоих типов создаются с помощью параметра file или data (доступны также другие параметры).
Изменено в версии 3.13: Добавлен метод copy_replace() класса PhotoImage для копирования области одного изображения в другое, возможно, с увеличением и/или прореживанием пикселей. В методы copy(), zoom() и subsample() класса PhotoImage добавлен параметр from_coords. В метод copy() класса PhotoImage добавлены параметры zoom и subsample.
Объект изображения можно использовать везде, где виджет поддерживает параметр image (например, в метках, кнопках и меню). В таких случаях Tk не сохраняет ссылку на изображение. При удалении последней ссылки Python на объект изображения данные изображения также удаляются, и Tk будет отображать пустую область везде, где использовалось изображение.
См. также
Пакет Pillow добавляет поддержку таких форматов, как BMP, JPEG, TIFF и WebP, а также других.
Справочник
В этом разделе описаны классы, методы, функции и константы модуля tkinter. Большинство из них являются обёртками для команд Tcl/Tk; полный список параметров виджетов и дополнительные сведения см. в официальной документации Tcl/Tk.
-
exception tkinter.TclError -
Исключение, возникающее при ошибке вызова интерпретатора Tcl, например если виджету передан неизвестный параметр или недопустимое значение.
Базовые классы и классы-примеси
-
class tkinter.Misc -
Класс
Misc— это класс-примесь, от которого наследуютсяTkи, черезBaseWidget, все виджеты. Он предоставляет обширный набор методов, общих для всех объектов Tk: получение сведений об окнах, управление привязками событий и циклом обработки событий, управление фокусом клавиатуры и захватом указателя, доступ к выделению, буферу обмена и базе параметров, а также различные вспомогательные средства и средства интроспекции. Поскольку эти методы наследуются, они доступны во всех виджетах и в объекте приложенияTk; здесь они описаны один раз, а не повторяются для каждого виджета.-
cget(key) -
Возвращает в виде строки текущее значение параметра конфигурации с именем key для этого виджета. Выражение
widget[key]является эквивалентным и может использоваться вместо него.
-
configure(cnf=None, **kw) -
Запрашивает или изменяет параметры конфигурации виджета. Если аргументы не указаны, возвращает словарь, сопоставляющий каждому доступному имени параметра кортеж с его описанием (его имя, имя ресурса X, класс ресурса X, значение по умолчанию и текущее значение). Если в виде строки указано одно имя параметра, возвращает кортеж только для этого параметра. Если указаны один или несколько именованных аргументов либо в качестве cnf передан словарь, устанавливает каждому указанному параметру соответствующее значение; выражение
widget[key] = valueзадаёт один параметр тем же способом.config()— псевдонимconfigure().
-
keys() -
Возвращает список имен всех параметров конфигурации этого виджета.
-
getboolean(s) -
Интерпретирует строку s как логическое значение Tcl и возвращает соответствующее значение типа
bool. Tcl принимает такие значения, как'1','0','yes','no','true'и'false'. Вызывает исключениеValueError, если s не является допустимым логическим значением.
-
getdouble(s) -
Интерпретирует строку s как число с плавающей точкой Tcl и возвращает его как значение типа
float. Вызывает исключениеValueError, если s не является допустимым числом.Добавлено в версии 3.5.
-
getint(s) -
Интерпретирует строку s как целое число Tcl и возвращает его как значение типа
int. Вызывает исключениеValueError, если s не является допустимым целым числом.
-
getvar(name) -
Возвращает значение глобальной переменной Tcl с именем name.
-
setvar(name, value) -
Устанавливает для глобальной переменной Tcl с именем name значение value.
Методы
getvar()иsetvar()предоставляют прямой доступ к переменным Tcl. В большинстве случаев вместо них используют подклассVariable, напримерStringVarилиIntVar, который оборачивает переменную Tcl и преобразует её значение в тип Python и обратно.
-
register(func, subst=None, needcleanup=1) -
Регистрирует вызываемый объект Python func как команду Tcl и возвращает имя новой команды в виде строки. При каждом вызове этой команды из Tcl вызывается func; если указан subst, он предварительно применяется к аргументам команды. Этот механизм используется внутри для преобразования обратных вызовов Python в имена команд, передаваемые параметрам Tk, например command. Если needcleanup не равно false, команда автоматически удаляется при уничтожении виджета.
Изменено в версии 3.13: Аргументы, передаваемые в func, больше не преобразуются в строки.
-
deletecommand(name) -
Удаляет команду Tcl с именем name, например команду, имя которой ранее было возвращено методом
register().
-
nametowidget(name) -
Возвращает экземпляр виджета, соответствующий пути Tk name.
-
send(interp, cmd, *args) -
Отправляет команду Tcl cmd с указанными аргументами args интерпретатору Tcl, зарегистрированному под именем interp, и возвращает результат. Доступно не на всех платформах.
-
destroy() -
Уничтожает этот виджет и все его дочерние виджеты, а также удаляет связанные с ними команды Tcl.
-
tkraise(aboveThis=None) -
Поднимает этот виджет в порядке наложения, чтобы он отображался поверх соседних виджетов. Если указан aboveThis, виджет перемещается в порядке наложения непосредственно над ним.
lift()— псевдонимtkraise().
-
lower(belowThis=None) -
Опускает этот виджет в порядке наложения, чтобы он отображался под соседними виджетами. Если указан belowThis, виджет перемещается в порядке наложения непосредственно под ним.
tkraise()/lift()иlower()переопределены в виджетеCanvas, где вместо этого они меняют порядок наложения элементов холста.
-
image_names() -
Возвращает имена всех изображений, существующих в данный момент в интерпретаторе Tcl.
Переопределён в виджете
Text, гдеimage_names()вместо этого возвращает имена встроенных изображений.
-
image_types() -
Возвращает доступные типы изображений, например
'photo'и'bitmap'.
-
grid_anchor(anchor=None) -
Устанавливает привязку, определяющую расположение сетки внутри этого контейнера, если контейнер больше сетки и ни одна строка или колонка не имеет ненулевого веса. anchor — одна из стандартных строковых констант привязки, например
'nw'(значение по умолчанию) или'center'. При вызове без аргументов этот метод ничего не делает.anchor()— псевдонимgrid_anchor().Добавлено в версии 3.3.
-
grid_bbox(column=None, row=None, col2=None, row2=None) -
Возвращает ограничивающий прямоугольник в пикселях для области сетки, размещённой в этом контейнере, в виде кортежа из четырёх элементов
(xoffset, yoffset, width, height). Если аргументы не указаны, возвращается ограничивающий прямоугольник всей сетки. Если указаны column и row, прямоугольник охватывает ячейки от ячейки в строке и колонке 0 до указанной ячейки; если также указаны col2 и row2, он охватывает ячейки от (column, row) до (col2, row2).bbox()— псевдонимgrid_bbox(), за исключением виджетовCanvas,Listbox,Spinbox,Text,ttk.Entryиttk.Treeview, которые предоставляют собственный методbbox().
-
grid_columnconfigure(index, cnf={}, **kw) -
Запрашивает или задаёт свойства колонки (или колонок) index сетки, управляемой этим контейнером. index может быть номером колонки; при задании параметров это также может быть список номеров колонок, строка
'all'для воздействия на все колонки или дочерний виджет, затрагивающий занимаемые им колонки. Поддерживаются следующие параметры:- minsize
-
Минимальный размер колонки в пикселях.
- weight
-
Целое число, задающее долю дополнительного пространства, выделяемую колонке. Вес
0оставляет колонку запрошенного размера, а колонка с весом два увеличивается вдвое быстрее колонки с весом один. - uniform
-
Имя группы равномерного распределения. Колонки с одинаковым непустым именем группы сохраняют размеры, строго пропорциональные их весам.
- pad
-
Дополнительное пространство в пикселях, добавляемое к самому большому виджету в колонке при вычислении размера колонки.
Если указано одно имя параметра, возвращается его значение; если параметры не указаны, возвращается словарь со всеми параметрами.
columnconfigure()— псевдонимgrid_columnconfigure().
-
grid_rowconfigure(index, cnf={}, **kw) -
Запрашивает или задаёт свойства строки (или строк) index сетки, управляемой этим контейнером. Значение index интерпретируется так же, как в методе
grid_columnconfigure(); поддерживаются те же параметры (minsize, weight, uniform и pad), но применяются они к строке, а не к колонке.rowconfigure()— псевдонимgrid_rowconfigure().
-
grid_location(x, y) -
Возвращает
(column, row)ячейки сетки, содержащей пиксель в позиции (x, y), заданной в пикселях относительно этого контейнера. Для расположения выше или левее сетки для соответствующей координаты возвращается-1.
-
grid_propagate() - grid_propagate(flag)
-
Включает или отключает распространение геометрии для этого контейнера, если его дочерними элементами управляет менеджер геометрии grid. Если flag имеет значение true, контейнер изменяет размер, чтобы соответствовать запрошенным размерам дочерних элементов; если значение false, размер контейнера остаётся под вашим управлением. При вызове без аргументов возвращает текущую настройку в виде логического значения.
-
grid_size() -
Возвращает размер сетки, управляемой этим контейнером, в виде кортежа
(columns, rows).size()— псевдонимgrid_size(), за исключением виджетаListbox, который предоставляет собственный методsize().
-
grid_slaves(row=None, column=None) -
Возвращает список дочерних виджетов, размещённых в сетке этого контейнера, начиная с самого недавно размещённого. Если указан row или column, возвращаются только дочерние элементы в этой строке или колонке.
-
pack_propagate() - pack_propagate(flag)
-
Включает или отключает распространение геометрии для этого контейнера, если его дочерними элементами управляет менеджер геометрии pack. Если flag имеет значение true, контейнер изменяет размер, чтобы соответствовать запрошенным размерам дочерних элементов; если значение false, размер контейнера остаётся под вашим управлением. При вызове без аргументов возвращает текущую настройку в виде логического значения.
propagate()— псевдонимpack_propagate().
-
pack_slaves() -
Возвращает список дочерних виджетов, размещённых в этом контейнере с помощью менеджера геометрии pack, в порядке размещения.
slaves()— псевдонимpack_slaves().
-
place_slaves() -
Возвращает список дочерних виджетов, размещённых в этом контейнере с помощью менеджера геометрии place.
-
bind(sequence=None, func=None, add=None) -
Привязывает шаблон события sequence этого виджета к вызываемому объекту func.
sequence — это шаблон события, например
'<Button-1>'(щелчок мышью) или'<KeyPress-a>'; также это может быть объединение нескольких таких шаблонов, события которых должны произойти одно за другим за короткий промежуток времени. При возникновении события вызывается func, единственным аргументом которой служит экземплярEventс описанием этого события; если func возвращает строку'break', дальнейшие привязки для события не вызываются.Если add имеет значение true, func добавляется к функциям, уже привязанным к sequence; в противном случае она заменяет их. Привязка применяется только к этому виджету.
bind()возвращает строковый идентификатор (funcid), который впоследствии можно передать вunbind(), чтобы удалить привязку и не оставить связанную команду Tcl.Если func не указан, возвращается функция, в данный момент связанная с sequence; если не указан и sequence, возвращается список всех шаблонов событий, для которых у этого виджета существуют привязки.
-
bind_class(className, sequence=None, func=None, add=None) -
Аналогичен
bind(), но привязывает func к тегу привязки className, а не к отдельному виджету, поэтому привязка применяется ко всем виджетам с этим тегом. Обычно className — это имя класса виджета, например'Button'; в этом случае привязка затрагивает все виджеты этого класса. Набор тегов привязки виджета можно просмотреть и изменить с помощью методаbindtags().Остальные аргументы и возвращаемое значение такие же, как у
bind().
-
bind_all(sequence=None, func=None, add=None) -
Аналогичен
bind(), но привязывает func к специальному тегу привязки'all', поэтому привязка применяется ко всем виджетам приложения.Остальные аргументы и возвращаемое значение такие же, как у
bind().
-
unbind(sequence, funcid=None) -
Удаляет привязки шаблона события sequence для этого виджета.
Если указан funcid, удаляется только идентифицированная им функция (значение, возвращённое предыдущим вызовом
bind()), а связанная с ней команда Tcl удаляется. В противном случае все привязки для sequence уничтожаются, и для него не остаётся привязок.Изменено в версии 3.13: Если указан funcid, отменяется привязка только этого обратного вызова; остальные обратные вызовы, привязанные к sequence, сохраняются.
-
unbind_class(className, sequence) -
Удаляет все привязки шаблона события sequence для тега привязки className. См.
bind_class().
-
unbind_all(sequence) -
Удаляет все привязки шаблона события sequence для специального тега привязки
'all'. См.bind_all().
-
bindtags(tagList=None) -
Если tagList не указан, возвращает кортеж тегов привязки, связанных с этим виджетом. Когда в виджете происходит событие, оно последовательно обрабатывается каждым тегом привязки виджета, а для каждого тега выполняется наиболее точно соответствующая привязка. По умолчанию у виджета есть четыре тега привязки: его собственный путь, класс виджета, путь к ближайшему родительскому окну верхнего уровня и
'all'— именно в таком порядке.Если указан tagList, он должен быть последовательностью строк; теги привязки виджета устанавливаются в соответствии с её элементами, что определяет порядок проверки привязок.
Методы с префиксом
event_определяют виртуальные события и программно генерируют события.-
event_add(virtual, *sequences) -
Связывает виртуальное событие virtual, имя которого имеет вид
'<<Paste>>', с каждым из физических шаблонов событий, указанных в sequences, так что виртуальное событие срабатывает при возникновении любого из них. Если virtual уже определено, новые шаблоны добавляются к существующим.
-
event_delete(virtual, *sequences) -
Удаляет каждый элемент sequences из списка шаблонов, связанных с виртуальным событием virtual. Шаблоны, в данный момент не связанные с virtual, игнорируются. Если sequences не указаны, удаляются все физические шаблоны событий, и virtual перестаёт срабатывать.
-
event_generate(sequence, **kw) -
Генерирует событие sequence для этого виджета и назначает его обработку так, как если бы оно поступило от оконной системы. sequence должен быть одним шаблоном события, например
'<Button-1>'или'<<Paste>>', а не объединением нескольких шаблонов. Именованные аргументы задают дополнительные поля события, например x и y для позиции указателя или when для управления временем обработки события; полный список см. на странице руководства Tkevent.
-
event_info(virtual=None) -
Если virtual не указан, возвращает кортеж всех определённых в данный момент виртуальных событий. Если virtual указан, возвращает кортеж физических шаблонов событий, связанных с ним в данный момент, или пустой кортеж, если событие не определено.
Методы с префиксом
afterпланируют вызов обратных вызовов после задержки или в период простоя приложения.-
after(ms, func=None, *args, **kw) -
Планирует вызов вызываемого объекта func через ms миллисекунд, передавая ему args и kw в качестве позиционных и именованных аргументов. Возвращает идентификатор, который можно передать в
after_cancel(), чтобы отменить вызов.Если func не указан, вместо этого приостанавливает выполнение на ms миллисекунд, не обрабатывая в это время события, и возвращает
None.Изменено в версии 3.10: Теперь func может быть любым вызываемым объектом, а не только функцией.
Изменено в версии 3.14: Именованные аргументы теперь передаются в func.
-
after_cancel(id) -
Отменяет обратный вызов, ранее запланированный с помощью
after()илиafter_idle(). id должен быть идентификатором, возвращённым одним из этих методов; передача значения, которое не является таким идентификатором, вызывает исключениеValueError. Если обратный вызов уже выполнен или отменён, метод ничего не делает.Изменено в версии 3.7: Передача
None(или любого ложного значения) в качестве id теперь вызывает исключениеValueError.
-
after_idle(func, *args, **kw) -
Планирует вызов вызываемого объекта func в следующий момент простоя главного цикла Tk, то есть когда ему больше нечего обрабатывать, передавая ему args и kw. Возвращает идентификатор, который можно передать в
after_cancel(), чтобы отменить вызов.Изменено в версии 3.14: Именованные аргументы теперь передаются в func.
-
after_info(id=None) -
Если id не указан, возвращает кортеж идентификаторов всех обратных вызовов этого интерпретатора, в данный момент запланированных с помощью
after()иafter_idle().Если указан id, он должен идентифицировать обратный вызов, который ещё не был выполнен или отменён; возвращаемое значение — кортеж
(script, type), где script обозначает вызываемую функцию, а type принимает значение'idle'или'timer'. Если id не существует, вызывается исключениеTclError.Добавлено в версии 3.13.
-
mainloop(n=0) -
Запускает цикл обработки событий Tk, который обрабатывает события, пока не будут уничтожены все окна. Обычно этот метод вызывается один раз для корневого окна, чтобы запустить приложение.
-
quit() -
Завершает работу интерпретатора Tcl, в результате чего
mainloop()возвращает управление.
-
update() -
Запускает цикл обработки событий до обработки всех ожидающих событий, включая обратные вызовы в период простоя. Обновляет отображение и обрабатывает все уже поставленные в очередь события, после чего возвращает управление.
-
update_idletasks() -
Запускает цикл обработки событий до выполнения всех ожидающих обратных вызовов в период простоя. Обновляет отображение окон, например после изменения геометрии, но не обрабатывает события, вызванные действиями пользователя.
-
wait_variable(name) -
Ожидает изменения переменной Tcl name, продолжая в это время обрабатывать события, чтобы приложение оставалось отзывчивым. Обычно name — это экземпляр
Variable, напримерIntVarилиStringVar.waitvar()— псевдонимwait_variable().
-
wait_window(window=None) -
Ожидает уничтожения окна window, продолжая в это время обрабатывать события. Если window не указан, используется этот виджет. Обычно этот метод применяют, чтобы дождаться завершения взаимодействия пользователя с диалоговым окном.
-
wait_visibility(window=None) -
Ожидает изменения состояния видимости окна window, например его первого появления на экране, продолжая в это время обрабатывать события. Если window не указан, используется этот виджет. Обычно этот метод применяют, чтобы дождаться появления нового окна на экране, прежде чем выполнять с ним какие-либо действия.
Методы с префиксом
focus_управляют фокусом клавиатуры. -
-
focus() -
Перевести фокус ввода с клавиатуры для отображения этого виджета на данный виджет. Если в данный момент приложение не имеет фокуса ввода на отображении этого виджета, виджет запоминается как окно фокуса для своего окна верхнего уровня, и фокус будет переведён на него в следующий раз, когда оконный менеджер передаст фокус окну верхнего уровня.
focus()— это псевдонимfocus_set(), кроме виджетовCanvasиttk.Treeview, в которых предусмотрен собственный методfocus().
-
focus_force() -
Перевести фокус ввода с клавиатуры на этот виджет, даже если приложение в данный момент не имеет фокуса ввода для отображения виджета. Этот метод следует использовать редко, если вообще использовать; обычно приложению следует дождаться, пока оконный менеджер передаст ему фокус, а не запрашивать его самостоятельно.
-
focus_get() -
Вернуть виджет, который в данный момент имеет фокус ввода с клавиатуры в приложении, или
None, если ни один виджет приложения не имеет фокуса. Для корректной работы с несколькими дисплеями используйтеfocus_displayof().
-
focus_displayof() -
Вернуть виджет, который в данный момент имеет фокус ввода с клавиатуры на дисплее, где расположен этот виджет, или
None, если ни один виджет приложения не имеет фокуса на этом дисплее.
-
focus_lastfor() -
Вернуть виджет, который последним имел фокус ввода с клавиатуры среди всех виджетов того же окна верхнего уровня, что и этот виджет; именно этот виджет получит фокус в следующий раз, когда оконный менеджер передаст фокус окну верхнего уровня. Если ни один виджет этого окна верхнего уровня никогда не имел фокуса или если последний виджет с фокусом был удалён, возвращается само окно верхнего уровня.
-
tk_focusFollowsMouse() -
Перенастроить Tk на использование модели неявного фокуса, при которой фокус устанавливается на виджет при каждом перемещении указателя мыши в его область. После включения эту настройку нельзя легко отключить.
-
tk_focusNext() -
Вернуть следующий виджет после этого в порядке перемещения фокуса с клавиатуры или
None, если такого нет. Сначала порядок переходит к следующему дочернему виджету, затем рекурсивно к его дочерним виджетам, а потом к следующему соседнему виджету, расположенному выше в порядке наложения. Виджет пропускается, если для его параметраtakefocusзадано значение0. Этот метод используется в привязках по умолчанию для клавиши Tab.
-
tk_focusPrev() -
Вернуть предыдущий виджет перед этим в порядке перемещения фокуса с клавиатуры или
None, если такого нет. Описание порядка см. вtk_focusNext(). Этот метод используется в привязках по умолчанию для сочетания клавиш Shift-Tab.
Методы с префиксом
grab_устанавливают и запрашивают захват ввода, который направляет все события ввода одному виджету.-
grab_set() -
Установить локальный захват для этого виджета. Захват ограничивает события указателя этим виджетом и его дочерними элементами: пока указатель находится за пределами иерархии виджета, нажатия и отпускания кнопок, а также перемещения указателя передаются виджету, захватившему ввод, а окна за пределами этой иерархии становятся нечувствительными до снятия захвата. Локальный захват влияет только на приложение, которое его установило. Любой захват, ранее установленный этим приложением на дисплее виджета, автоматически снимается. Установка захвата — обычный способ сделать диалоговое окно модальным: пока захват действует, пользователь не может взаимодействовать с другими окнами приложения.
-
grab_set_global() -
Установить глобальный захват для этого виджета. Глобальный захват похож на локальный захват, устанавливаемый с помощью
grab_set(), но блокирует все остальные приложения на экране, так что событиям указателя чувствительна только иерархия этого виджета; кроме того, он захватывает клавиатуру. Используйте с осторожностью: глобальный захват легко может сделать дисплей непригодным для использования, поскольку другие приложения перестают получать события до его снятия.
-
grab_release() -
Снять захват с этого виджета, если он установлен; в противном случае ничего не делать.
-
grab_current() -
Вернуть виджет, который в данный момент удерживает захват в этом приложении для дисплея данного виджета, или
None, если такого виджета нет.
-
grab_status() -
Вернуть
None, если для этого виджета в данный момент не установлен захват,"local", если установлен локальный захват, или"global", если установлен глобальный захват.
Методы с префиксом
selection_получают данные о выделении X и управляют им.-
selection_clear(**kw) -
Очистить выделение X, чтобы ни одно окно больше им не владело. Очищаемое выделение задаётся именованным аргументом selection — именем атома, например
'PRIMARY'или'CLIPBOARD'; по умолчанию используетсяPRIMARY. Именованный аргумент displayof задаёт виджет, определяющий дисплей, с которым нужно работать; по умолчанию используется этот виджет.Для виджетов
Entry,ListboxиSpinboxэтот метод переопределён:selection_clear()очищает собственное выделение виджета.
-
selection_get(**kw) -
Вернуть содержимое текущего выделения X. Именованный аргумент selection задаёт имя выделения; по умолчанию используется
PRIMARY. Именованный аргумент type задаёт форму, в которой нужно вернуть данные (целевой формат преобразования), — имя атома, например'STRING'или'FILE_NAME'; по умолчанию используетсяSTRING, за исключением X11, где сначала проверяетсяUTF8_STRING, а в качестве запасного варианта используетсяSTRING. Именованный аргумент displayof задаёт виджет, определяющий дисплей, с которого нужно получить выделение; по умолчанию используется этот виджет.
-
selection_handle(command, **kw) -
Зарегистрировать command в качестве обработчика, который предоставляет выделение X, принадлежащее этому виджету, когда его запрашивает другое приложение. При получении выделения вызывается command с двумя аргументами: начальным смещением символа и максимальным количеством символов для возврата. Функция должна вернуть не более указанного количества символов выделения, начиная с этого смещения; для очень длинных выделений она вызывается повторно с возрастающими смещениями. Именованный аргумент selection задаёт имя выделения (по умолчанию
PRIMARY), а именованный аргумент type задаёт форму выделения, предоставляемую обработчиком (например,'STRING'или'FILE_NAME'; по умолчаниюSTRING).
-
selection_own(**kw) -
Сделать этот виджет владельцем выделения X на своём дисплее. Предыдущий владелец, если он был, уведомляется о потере выделения. Именованный аргумент selection задаёт имя выделения; по умолчанию используется
PRIMARY.
-
selection_own_get(**kw) -
Вернуть виджет этого приложения, который владеет выделением X на дисплее, где находится данный виджет, или
None, если ни один виджет этого приложения не владеет выделением. Именованный аргумент selection задаёт имя выделения; по умолчанию используетсяPRIMARY. Именованный аргумент displayof задаёт виджет, определяющий дисплей для запроса; по умолчанию используется этот виджет.
Методы с префиксом
clipboard_управляют буфером обмена.-
clipboard_append(string, **kw) -
Добавить string в буфер обмена Tk и заявить право владения буфером обмена на дисплее этого виджета. Перед добавлением буфер обмена следует очистить с помощью
clipboard_clear(); все добавления необходимо завершить до возврата в цикл обработки событий, чтобы обновление буфера обмена было атомарным. Именованный аргумент type задаёт форму данных — имя атома, например'STRING'или'FILE_NAME'(по умолчаниюSTRING), а именованный аргумент format задаёт способ представления данных при передаче (по умолчаниюSTRING). Именованный аргумент displayof задаёт виджет, определяющий целевой дисплей; по умолчанию используется этот виджет. Содержимое можно получить с помощьюclipboard_get()илиselection_get().
-
clipboard_clear(**kw) -
Заявить право владения буфером обмена на дисплее этого виджета и удалить его предыдущее содержимое. Именованный аргумент displayof задаёт виджет, определяющий целевой дисплей; по умолчанию используется этот виджет.
-
clipboard_get(**kw) -
Получить данные из буфера обмена на дисплее этого виджета. Именованный аргумент type задаёт форму, в которой нужно вернуть данные, — имя атома, например
'STRING'или'FILE_NAME'; по умолчанию используетсяSTRING, за исключением X11, где сначала проверяетсяUTF8_STRING, а в качестве запасного варианта используетсяSTRING. Именованный аргумент displayof задаёт виджет, определяющий дисплей; по умолчанию используется корневое окно приложения. Это эквивалентноselection_get(selection='CLIPBOARD').
Методы с префиксом
option_запрашивают и изменяют базу данных параметров Tk.-
option_add(pattern, value, priority=None) -
Добавить параметр в базу данных параметров Tk, связав value с pattern. pattern состоит из имён и/или классов, разделённых звёздочками или точками, в стандартном формате X. priority — целое число от 0 до 100 или одно из символьных имён
'widgetDefault'(20),'startupFile'(40),'userDefault'(60) или'interactive'(80); по умолчанию используетсяinteractive.
-
option_clear() -
Очистить базу данных параметров Tk. Параметры по умолчанию из свойства
RESOURCE_MANAGERили файла.Xdefaultsавтоматически загружаются повторно при следующем добавлении параметра в базу данных или удалении из неё.
-
option_get(name, className) -
Вернуть из базы данных параметров Tk значение параметра, соответствующего этому виджету и заданным name и className, или пустую строку, если совпадающей записи нет. Если совпадают несколько записей, возвращается запись с наивысшим приоритетом; среди записей с одинаковым приоритетом возвращается добавленная последней.
-
option_readfile(fileName, priority=None) -
Прочитать файл с именем fileName, который должен иметь стандартный формат базы данных ресурсов X, например
.Xdefaults, и добавить все указанные в нём параметры в базу данных параметров Tk. Значение priority интерпретируется так же, как вoption_add(); по умолчанию используетсяinteractive.
-
bell(displayof=0) -
Подать звуковой сигнал на дисплее этого виджета, используя текущие настройки звукового сигнала дисплея, и сбросить экранную заставку для экрана. Если в качестве displayof задан виджет, сигнал подаётся на его дисплее.
-
tk_setPalette(background, /) - tk_setPalette(*args, **kw)
-
Установить новую цветовую схему для всех элементов виджетов Tk. Существующие виджеты обновляются, а база данных параметров изменяется так, чтобы новые виджеты использовали новые цвета. Один аргумент-цвет трактуется как обычный цвет фона, на основе которого вычисляется полная палитра. В качестве альтернативы аргументы можно задавать парами именованных параметров name/value, указывающими отдельные параметры в базе данных. Распознаваемые имена параметров:
activeBackground,activeForeground,background,disabledForeground,foreground,highlightBackground,highlightColor,insertBackground,selectColor,selectBackground,selectForegroundиtroughColor; для неуказанных параметров вычисляются подходящие значения по умолчанию.
-
tk_bisque() -
Вернуть цвета приложения к светло-коричневой цветовой схеме (bisque), использовавшейся в Tk 3.6 и более ранних версиях. Предоставляется для обратной совместимости.
-
tk_strictMotif(boolean=None) -
Запросить или задать, должен ли внешний вид Tk строго соответствовать Motif. Значение boolean, равное true, включает строгое соответствие Motif (например, цвет ползунка не меняется при наведении мыши). Вернуть полученную настройку.
Методы с префиксом
busy_управляют состоянием занятости окна: отображают курсор занятости и игнорируют пользовательский ввод.-
tk_busy_hold(**kw) -
Перевести этот виджет в состояние занятости. Перед виджетом размещается прозрачное окно, блокирующее события указателя для него и всех его потомков в иерархии виджетов и отображающее курсор занятости. Обычно сразу после этого следует вызвать
update(), чтобы операция блокировки вступила в силу до начала обработки данных приложением.Поддерживается только один параметр конфигурации — cursor, задающий курсор, отображаемый, пока виджет занят; он может принимать любые значения, допустимые для
configure().busy_hold(),busy()иtk_busy()— псевдонимыtk_busy_hold().Добавлено в версии 3.13.
-
tk_busy_configure(cnf=None, **kw) -
Запросить или изменить параметры конфигурации окна занятости. Виджет должен быть предварительно переведён в состояние занятости с помощью
tk_busy_hold(). Если аргументы не указаны, вернуть словарь со всеми доступными параметрами; если cnf — имя параметра, вернуть кортеж с описанием этого параметра. В противном случае задать указанные значения для переданных параметров. Параметры могут принимать любые значения, допустимые дляtk_busy_hold().База данных параметров используется через имя или класс виджета. Например, если виджет
Frameс именемframeнужно перевести в состояние занятости, курсор занятости можно задать одним из следующих вызовов:w.option_add('*frame.busyCursor', 'gumby') w.option_add('*Frame.BusyCursor', 'gumby')busy_configure(),busy_config()иtk_busy_config()— псевдонимыtk_busy_configure().Добавлено в версии 3.13.
-
tk_busy_cget(option) -
Вернуть текущее значение параметра конфигурации занятости option. Виджет должен быть предварительно переведён в состояние занятости с помощью
tk_busy_hold(), а option может принимать любые значения, допустимые для этого метода.busy_cget()— псевдонимtk_busy_cget().Добавлено в версии 3.13.
-
tk_busy_forget() -
Вывести этот виджет из состояния занятости и освободить ресурсы (включая прозрачное окно), выделенные при переводе в это состояние. Виджет снова будет получать пользовательские события. Эти ресурсы также освобождаются при уничтожении виджета.
busy_forget()— псевдонимtk_busy_forget().Добавлено в версии 3.13.
-
tk_busy_status() -
Вернуть
True, если виджет в данный момент занят, иFalseв противном случае.busy_status()— псевдонимtk_busy_status().Добавлено в версии 3.13.
-
tk_busy_current(pattern=None) -
Вернуть список виджетов, которые в данный момент заняты. Если задан pattern, возвращаются только занятые виджеты, имена путей которых соответствуют этому шаблону.
busy_current()— псевдонимtk_busy_current().Добавлено в версии 3.13.
Методы с префиксом
winfo_получают сведения об окнах, которыми управляет Tk.-
winfo_atom(name, displayof=0) -
Вернуть целочисленный идентификатор атома с именем name, создав новый атом, если он не существует. Если задан displayof, атом ищется на дисплее соответствующего окна; в противном случае поиск выполняется на дисплее главного окна приложения.
-
winfo_atomname(id, displayof=0) -
Вернуть текстовое имя атома с целочисленным идентификатором id. Это обратная операция для
winfo_atom(). Если задан displayof, идентификатор ищется на дисплее соответствующего окна; в противном случае поиск выполняется на дисплее главного окна приложения.
-
winfo_cells() -
Вернуть количество ячеек в цветовой карте виджета.
-
winfo_children() -
Вернуть список дочерних виджетов в порядке наложения — от нижнего к верхнему. Окна верхнего уровня возвращаются как дочерние элементы своих логических родителей.
-
winfo_class() -
Вернуть имя класса виджета.
-
winfo_colormapfull() -
Вернуть
True, если известно, что цветовая карта виджета заполнена, иFalseв противном случае.
-
winfo_containing(rootX, rootY, displayof=0) -
Вернуть виджет, содержащий точку с координатами rootX и rootY, или
None, если ни одно окно этого приложения не содержит эту точку. Координаты указаны в экранных единицах в системе координат корневого окна. Если задан displayof, координаты относятся к экрану, на котором находится соответствующее окно; в противном случае они относятся к экрану главного окна приложения.
-
winfo_depth() -
Вернуть глубину цвета виджета, то есть количество бит на пиксель.
-
winfo_exists() -
Вернуть true, если виджет существует, и false в противном случае.
-
winfo_fpixels(number) -
Вернуть число с плавающей точкой, указывающее количество пикселей в виджете, соответствующее экранному расстоянию number (например,
"2.0c"или"1i"). Результат может быть дробным; для получения округлённого целого значения используйтеwinfo_pixels().
-
winfo_geometry() -
Вернуть геометрию виджета в формате
widthxheight+x+y. Все размеры указаны в пикселях. Смещение может быть отрицательным; см.geometry().
-
winfo_height() -
Вернуть высоту виджета в пикселях. При создании высота окна равна 1 пикселю; позднее её изменяет менеджер геометрии. См. также
winfo_reqheight().
-
winfo_id() -
Вернуть низкоуровневый идентификатор виджета, зависящий от платформы. В Unix это идентификатор окна X, а в Windows — дескриптор окна.
-
winfo_interps(displayof=0) -
Вернуть кортеж с именами всех интерпретаторов Tcl, зарегистрированных в данный момент для конкретного дисплея. Если задан displayof, возвращаемое значение относится к дисплею соответствующего окна; в противном случае оно относится к дисплею главного окна приложения.
-
winfo_ismapped() -
Вернуть true, если виджет в данный момент отображён, и false в противном случае.
-
winfo_manager() -
Вернуть имя менеджера геометрии, который в данный момент управляет виджетом, или пустую строку, если виджетом не управляет ни один менеджер геометрии.
-
winfo_name() -
Вернуть имя виджета в пределах его родителя, а не полное имя пути.
-
winfo_parent() -
Вернуть имя пути родительского виджета или пустую строку, если виджет является главным окном приложения.
-
winfo_pathname(id, displayof=0) -
Вернуть имя пути окна с идентификатором id. Если задан displayof, идентификатор ищется на дисплее соответствующего окна; в противном случае поиск выполняется на дисплее главного окна приложения.
-
winfo_pixels(number) -
Вернуть количество пикселей в виджете, соответствующее экранному расстоянию number (например,
"2.0c"или"1i"). Результат округляется до ближайшего целого числа; для получения дробного значения используйтеwinfo_fpixels().
-
winfo_pointerx() -
Вернуть координату x указателя в пикселях относительно корневого окна экрана (или виртуального корня, если он используется). Вернуть
-1, если указатель находится не на том же экране, что и виджет.
-
winfo_pointerxy() -
Вернуть координаты указателя в виде кортежа
(x, y)в пикселях относительно корневого окна экрана (или виртуального корня, если он используется). Если указатель находится не на том же экране, что и виджет, обе координаты равны-1.
-
winfo_pointery() -
Вернуть координату y указателя в пикселях относительно корневого окна экрана (или виртуального корня, если он используется). Вернуть
-1, если указатель находится не на том же экране, что и виджет.
-
winfo_reqheight() -
Вернуть запрошенную высоту виджета в пикселях. Это значение используется менеджером геометрии виджета для вычисления его геометрии.
-
winfo_reqwidth() -
Вернуть запрошенную ширину виджета в пикселях. Это значение используется менеджером геометрии виджета для вычисления его геометрии.
-
-
winfo_rgb(color) -
Возвращает кортеж
(r, g, b)интенсивностей красного, зелёного и синего цветов в диапазоне от 0 до 65535, соответствующих color в виджете. color можно указать в любой форме, допустимой для параметра цвета.
-
winfo_rootx() -
Возвращает координату x верхнего левого угла границы виджета (или самого виджета, если у него нет границы) относительно корневого окна экрана.
-
winfo_rooty() -
Возвращает координату y верхнего левого угла границы виджета (или самого виджета, если у него нет границы) относительно корневого окна экрана.
-
winfo_screen() -
Возвращает имя экрана, связанного с виджетом, в формате
displayName.screenIndex.
-
winfo_screencells() -
Возвращает количество ячеек в стандартной палитре экрана виджета.
-
winfo_screendepth() -
Возвращает глубину корневого окна экрана виджета, то есть количество бит на пиксель.
-
winfo_screenheight() -
Возвращает высоту экрана виджета в пикселях.
-
winfo_screenmmheight() -
Возвращает высоту экрана виджета в миллиметрах.
-
winfo_screenmmwidth() -
Возвращает ширину экрана виджета в миллиметрах.
-
winfo_screenvisual() -
Возвращает класс визуального представления по умолчанию для экрана виджета:
"directcolor","grayscale","pseudocolor","staticcolor","staticgray"или"truecolor".
-
winfo_screenwidth() -
Возвращает ширину экрана виджета в пикселях.
-
winfo_server() -
Возвращает строку со сведениями о сервере для дисплея виджета. Точный формат этой строки может различаться на разных платформах.
-
winfo_toplevel() -
Возвращает окно верхнего уровня иерархии, содержащее виджет. В стандартном Tk это всегда виджет
Toplevel.
-
winfo_viewable() -
Возвращает true, если виджет и все его предки вплоть до ближайшего окна верхнего уровня отображены; в противном случае возвращает false.
-
winfo_visual() -
Возвращает класс визуального представления виджета:
"directcolor","grayscale","pseudocolor","staticcolor","staticgray"или"truecolor".
-
winfo_visualid() -
Возвращает идентификатор X визуального представления виджета.
-
winfo_visualsavailable(includeids=False) -
Возвращает список визуальных представлений, доступных для экрана виджета. Каждый элемент состоит из класса визуального представления (см.
winfo_visual()), за которым следует целочисленная глубина. Если includeids равно true, также включается идентификатор X визуального представления.
-
winfo_vrootheight() -
Возвращает высоту виртуального корневого окна, связанного с виджетом, если оно существует; в противном случае возвращает высоту экрана виджета.
-
winfo_vrootwidth() -
Возвращает ширину виртуального корневого окна, связанного с виджетом, если оно существует; в противном случае возвращает ширину экрана виджета.
-
winfo_vrootx() -
Возвращает смещение x виртуального корневого окна, связанного с виджетом, относительно корневого окна его экрана. Обычно оно равно нулю или отрицательно и равно
0, если виртуального корневого окна нет.
-
winfo_vrooty() -
Возвращает смещение y виртуального корневого окна, связанного с виджетом, относительно корневого окна его экрана. Обычно оно равно нулю или отрицательно и равно
0, если виртуального корневого окна нет.
-
winfo_width() -
Возвращает ширину виджета в пикселях. При первом создании окна его ширина равна 1 пикселю; впоследствии она изменяется менеджером геометрии. См. также
winfo_reqwidth().
-
winfo_x() -
Возвращает координату x верхнего левого угла границы виджета (или самого виджета, если у него нет границы) относительно родительского окна.
-
winfo_y() -
Возвращает координату y верхнего левого угла границы виджета (или самого виджета, если у него нет границы) относительно родительского окна.
-
info_patchlevel() -
Возвращает уровень исправлений Tcl/Tk в виде именованного кортежа с теми же пятью полями, что и у
sys.version_info: major, minor, micro, releaselevel и serial. Значение releaselevel — это'alpha','beta'или'final'. При преобразовании в строку версия отображается в обычной для Tcl/Tk записи, например'9.0.3'для финального выпуска или'9.1b2'для предварительного выпуска.Добавлено в версии 3.11.
-
-
class tkinter.Wm -
Миксин
Wmпредоставляет доступ к диспетчеру окон, позволяя приложению управлять такими параметрами, как заголовок, геометрия и значок окна верхнего уровня, способом его изменения размера и реакцией на протоколы диспетчера окон. Он включён вTkиToplevel, поэтому его методы доступны для каждого окна верхнего уровня. Для каждого метода существуют два равнозначных варианта написания: короткое имя и имя с префиксомwm_(например,title()иwm_title()). См. также Диспетчер окон.-
aspect(minNumer=None, minDenom=None, maxNumer=None, maxDenom=None) -
Ограничивает соотношение сторон окна (отношение ширины к высоте). Если указаны все четыре аргумента, диспетчер окон поддерживает соотношение в диапазоне от
minNumer/minDenomдоmaxNumer/maxDenom; передача пустых строк снимает все существующие ограничения. Без аргументов возвращает кортеж из четырёх текущих значений илиNone, если ограничение соотношения сторон не задано.wm_aspect()— псевдонимaspect().
-
attributes(*args, return_python_dict=False, **kwargs) -
Запрашивает или задаёт специфичные для платформы атрибуты окна. Без аргументов возвращает флаги платформы и их значения; передайте return_python_dict со значением true, чтобы получить их в виде словаря. Имя отдельного параметра, например
'alpha', возвращает значение этого параметра, а параметры задаются с помощью именованных аргументов (alpha=0.5).Доступные атрибуты различаются в зависимости от платформы. Поддерживаются всеми платформами:
- alpha
-
Непрозрачность окна: от
0.0(полностью прозрачное) до1.0(непрозрачное). Если прозрачность не поддерживается, значение остаётся равным1.0. - appearance
-
Отображается ли окно в тёмном режиме в Windows и macOS:
'auto','light'или'dark'(не влияет на X11). - fullscreen
-
Занимает ли окно весь экран и не имеет ли оно границ.
- topmost
-
Отображается ли окно поверх всех остальных окон.
В Windows дополнительно поддерживаются:
- disabled
-
Находится ли окно в отключённом состоянии.
- toolwindow
-
Использует ли окно стиль окна инструментов.
- transparentcolor
-
Цвет, который становится полностью прозрачным, или пустая строка, если такой цвет не задан.
В macOS дополнительно поддерживаются:
- class
-
Является ли базовое окно Aqua окном
nswindowилиnspanel; этот атрибут можно задать только до создания окна. - modified
-
Состояние изменений, отображаемое кнопкой закрытия окна и значком прокси.
- notify
-
Подпрыгивает ли значок приложения в Dock, чтобы привлечь внимание.
- stylemask
-
Маска стиля базового окна Aqua, задаваемая списком имён битов, например
titledилиresizable. - tabbingid
-
Идентификатор группы вкладок, к которой относится окно.
- tabbingmode
-
Можно ли открыть окно как вкладку:
'auto','preferred'или'disallowed'. - titlepath
-
Путь к файлу, представленному значком прокси окна.
- transparent
-
Является ли область содержимого прозрачной и отключена ли тень окна.
В X11 дополнительно поддерживаются:
- type
-
Тип окна или список типов в порядке предпочтения, которые диспетчер окон должен использовать для интерпретации окна, например
'dialog'или'splash'. - zoomed
-
Развёрнуто ли окно на весь экран.
Примечание
В Tk 8.6 был добавлен атрибут type, а в Tk 9.0 — атрибуты appearance, class, stylemask, tabbingid и tabbingmode.
В X11 изменения применяются асинхронно, поэтому запрошенное значение может ещё не отражать последний запрос.
wm_attributes()— псевдонимattributes().Изменено в версии 3.13: Теперь отдельный атрибут можно запрашивать по имени без начального
-, а атрибуты можно задавать с помощью именованных аргументов. Добавлен параметр return_python_dict.Устарело начиная с версии 3.13: Задание атрибута путём передачи имени параметра (с начальным
-) и его значения в виде двух позиционных аргументов, как вw.attributes('-alpha', 0.5), устарело; вместо этого используйте именованные аргументы.
-
client(name=None) -
Сохраняет name, которым должно быть имя узла, на котором запущено приложение, в свойстве окна
WM_CLIENT_MACHINEдля использования диспетчером окон или сеансов. Пустая строка удаляет свойство. Без аргумента возвращает последнее заданное имя или пустую строку.wm_client()— псевдонимclient().
-
colormapwindows(*wlist) -
Управляет свойством
WM_COLORMAP_WINDOWS, которое сообщает диспетчеру окон об окнах с частными таблицами цветов. Если задан wlist, свойство перезаписывается указанными окнами (их порядок определяет приоритет при установке таблиц цветов). Без аргументов возвращает список окон, в данный момент указанных в свойстве.wm_colormapwindows()— псевдонимcolormapwindows().
-
command(value=None) -
Сохраняет value в свойстве окна
WM_COMMANDдля использования диспетчером окон или сеансов; это должен быть список слов команды, использованной для запуска приложения. Пустая строка удаляет свойство. Без аргумента возвращает последнее заданное значение или пустую строку.wm_command()— псевдонимcommand().
-
deiconify() -
Отображает окно в обычном (не свёрнутом в значок) виде, отображая его на экране. Если окно ещё ни разу не отображалось, метод гарантирует, что при первом отображении оно будет развёрнуто. В Windows окно также поднимается на передний план и получает фокус.
wm_deiconify()— псевдонимdeiconify().
-
focusmodel(model=None) -
Задаёт или запрашивает модель фокуса окна. model может быть равен
'active'(окно получает фокус ввода для себя или своих потомков, даже когда фокус находится в другом приложении) или'passive'(окно полагается на диспетчер окон, который должен предоставить ему фокус). Без аргумента возвращает текущую модель. По умолчанию используется'passive', что предполагает командаfocus().wm_focusmodel()— псевдонимfocusmodel().
-
forget(window) -
Убирает window с экрана, чтобы диспетчер окон больше не управлял им. После этого
Toplevelобрабатывается какFrame, хотя его конфигурация-menuсохраняется, а меню появляется снова, если виджетом вновь начнут управлять.wm_forget()— псевдонимforget().Не путать с
Pack.forget().Добавлено в версии 3.3.
-
frame() -
Возвращает идентификатор окна, специфичный для платформы, для внешней декоративной рамки, содержащей окно, если диспетчер окон поместил его в такую рамку; в противном случае возвращает идентификатор самого окна.
wm_frame()— псевдонимframe().
-
geometry(newGeometry=None) -
Задаёт или запрашивает геометрию окна. newGeometry имеет формат
=widthxheight+x+y, в котором можно опустить любые из=,widthxheightи позицию+x+y. Значения width и height задаются в пикселях (или в единицах сетки для окна, использующего сетку); позиция, перед которой стоит+, измеряется от левого или верхнего края экрана, а позиция с-— от правого или нижнего края. Смещение может быть отрицательным, как в'200x100+-9+-8', когда край окна располагается за соответствующим краем экрана. Пустая строка отменяет заданную пользователем геометрию, позволяя окну вернуться к естественному размеру. Без аргумента возвращает текущую геометрию в виде строки формата'200x200+10+10'.wm_geometry()— псевдонимgeometry().
-
grid(baseWidth=None, baseHeight=None, widthInc=None, heightInc=None) -
Управляет окном как окном с сеткой и задаёт соотношение между единицами сетки и пикселями. baseWidth и baseHeight — количество единиц сетки для внутренне запрошенного размера окна, а widthInc и heightInc — размеры горизонтальной и вертикальной единицы сетки в пикселях. Пустые строки отключают управление с использованием сетки. Без аргументов возвращает кортеж из четырёх текущих значений или
None, если окно не использует сетку.wm_grid()— псевдонимgrid().Не путать с геометрическим менеджером сетки
Grid.grid().
-
group(pathName=None) -
Задаёт или запрашивает окно-лидер группы связанных окон. pathName задаёт путь к окну-лидеру группы; например, диспетчер окон может убрать с экрана все окна группы, когда окно-лидер свёрнуто в значок. Пустая строка исключает окно из всех групп. Без аргумента возвращает путь к текущему окну-лидеру группы или пустую строку.
wm_group()— псевдонимgroup().
-
iconbitmap(bitmap=None, default=None) -
Задаёт или запрашивает растровое изображение, которое диспетчер окон использует в качестве значка окна. bitmap задаёт растровое изображение в одном из стандартных форматов, поддерживаемых Tk; пустая строка отменяет текущий растровый значок. Без аргумента возвращает имя текущего растрового значка или пустую строку. В Windows аргумент default задаёт значок (например, файл
.ico), применяемый ко всем окнам верхнего уровня, у которых нет собственного значка.wm_iconbitmap()— псевдонимiconbitmap().
-
iconify() -
Сворачивает окно в значок. Если окно ещё не отображалось, метод задаёт для него свёрнутое состояние при последующем отображении.
wm_iconify()— псевдонимiconify().
-
iconmask(bitmap=None) -
Задаёт или запрашивает растровое изображение, используемое в качестве маски значка (см.
iconbitmap()). В местах, где маска содержит ноль, значок не отображается; где она содержит единицу, показываются соответствующие биты растрового изображения значка. Пустая строка отменяет текущую маску. Без аргумента возвращает имя текущей маски значка или пустую строку.wm_iconmask()— псевдонимiconmask().
-
iconname(newName=None) -
Задаёт или запрашивает имя, которое диспетчер окон отображает внутри значка окна. Без аргумента возвращает текущее имя значка или пустую строку, если имя не задано (в этом случае диспетчер окон обычно отображает заголовок окна).
wm_iconname()— псевдонимiconname().
-
iconphoto(default=False, *images) -
Задаёт значок в строке заголовка окна на основе одного или нескольких объектов
PhotoImage, переданных в images. Можно передать несколько изображений разных размеров (например, 16x16 и 32x32), чтобы диспетчер окон мог выбрать подходящее. Данные изображения фиксируются в момент вызова; последующие изменения изображений не отражаются. Если default имеет значение true, значок также применяется ко всем окнам верхнего уровня, созданным в будущем. В macOS используется только первое изображение.wm_iconphoto()— псевдонимiconphoto().Добавлено в версии 3.3.
-
iconposition(x=None, y=None) -
Задаёт или запрашивает указание диспетчеру окон о том, где следует расположить значок окна. Пустые строки отменяют существующее указание. Без аргументов возвращает кортеж из двух текущих значений или
None, если указание не задано.wm_iconposition()— псевдонимiconposition().
-
iconwindow(pathName=None) -
Задаёт или запрашивает окно, используемое в качестве значка этого окна. Когда окно свёрнуто в значок, pathName отображается в качестве его значка и снова скрывается, когда окно развёрнуто. Пустая строка отменяет эту связь. Без аргумента возвращает путь к текущему окну-значку или пустую строку. Не все диспетчеры окон поддерживают окна-значки; на платформах, отличных от X11, это понятие не имеет смысла.
wm_iconwindow()— псевдонимiconwindow().
-
manage(widget) -
Делает widget отдельным окном верхнего уровня, которое диспетчер окон оформляет строкой заголовка и другими элементами. Можно использовать только виджеты
Frame,LabelFrameиToplevel(варианты изtkinter.ttkне поддерживаются); передача виджета любого другого типа приводит к ошибке.wm_manage()— псевдонимmanage().Добавлено в версии 3.3.
-
maxsize(width=None, height=None) -
Задаёт или запрашивает максимально допустимые размеры окна в пикселях (или в единицах сетки для окна, использующего сетку). Диспетчер окон ограничивает размер окна значениями width и height. Без аргументов возвращает кортеж из текущих максимальных значений ширины и высоты. По умолчанию максимальный размер равен размеру экрана.
wm_maxsize()— псевдонимmaxsize().
-
minsize(width=None, height=None) -
Задаёт или запрашивает минимально допустимые размеры окна в пикселях (или в единицах сетки для окна, использующего сетку). Диспетчер окон ограничивает размер окна значениями width и height, не позволяя ему стать меньше. Без аргументов возвращает кортеж из текущих минимальных значений ширины и высоты. По умолчанию минимальный размер составляет один пиксель по каждому измерению.
wm_minsize()— псевдонимminsize().
-
overrideredirect(boolean=None) -
Задаёт или запрашивает флаг перенаправления окна. Если этот флаг установлен, диспетчер окон игнорирует окно: оно не помещается в декоративную рамку, а пользователь не может управлять им с помощью обычных средств диспетчера окон. Без аргумента возвращает логическое значение, указывающее, установлен ли флаг, или
None, если флаг не задавался. Флаг надёжно учитывается только при первом отображении окна или при повторном отображении после скрытия.wm_overrideredirect()— псевдонимoverrideredirect().
-
positionfrom(who=None) -
Задаёт или запрашивает источник текущего положения окна. who может быть равен
'program'или'user'и указывает, было ли положение задано программой или пользователем; пустая строка отменяет текущий источник. Без аргумента возвращает текущий источник или пустую строку, если он не задан. Tk автоматически устанавливает источник в'user'при вызовеgeometry(), если только он явно не задан как'program'.wm_positionfrom()— псевдонимpositionfrom().
-
protocol(name=None, func=None) -
Регистрирует func в качестве обработчика протокола диспетчера окон name — атома, например
'WM_DELETE_WINDOW','WM_SAVE_YOURSELF'или'WM_TAKE_FOCUS'; после этого func вызывается при каждом получении окном сообщения этого протокола от диспетчера окон. Tk устанавливает обработчикWM_DELETE_WINDOWпо умолчанию, который уничтожает окно; этот метод позволяет заменить его. Если func — пустая строка, обработчик удаляется. Если указан только name, возвращает имя команды зарегистрированного обработчика или пустую строку, если обработчик не задан (обработчикWM_DELETE_WINDOWпо умолчанию не возвращается); без аргументов возвращает кортеж протоколов, для которых в данный момент заданы обработчики.wm_protocol()— псевдонимprotocol().
-
resizable(width=None, height=None) -
Управляет возможностью интерактивного изменения размера окна пользователем. width и height — логические значения, определяющие, можно ли изменять ширину и высоту окна. Без аргументов возвращает кортеж из двух значений
0/1, указывающих, можно ли в данный момент изменять размер окна по каждому измерению. По умолчанию размер окна можно изменять по обоим измерениям.wm_resizable()— псевдонимresizable().
-
sizefrom(who=None) -
Задаёт или запрашивает источник текущего размера окна. who может быть равен
'program'или'user'и указывает, был ли размер задан программой или пользователем; пустая строка отменяет текущий источник. Без аргумента возвращает текущий источник или пустую строку, если он не задан.wm_sizefrom()— псевдонимsizefrom().
-
state(newstate=None) -
Задаёт или запрашивает состояние окна. Без аргумента возвращает текущее состояние: одно из
'normal','iconic','withdrawn','icon'или, только в Windows и macOS,'zoomed'.'iconic'обозначает окно, свёрнутое в значок, а'icon'— окно, служащее значком для другого окна (см.iconwindow()); состояние'icon'нельзя задать.wm_state()— псевдонимstate().Не путать с
ttk.Widget.state.
-
title(string=None) -
Задаёт или запрашивает заголовок окна, который диспетчер окон должен отображать в строке заголовка. Без аргумента возвращает текущий заголовок. По умолчанию заголовком является имя окна.
wm_title()— псевдонимtitle().
-
transient(master=None) -
Помечает окно как временное (например, выпадающее меню или диалоговое окно), работающее от имени master — пути к другому окну верхнего уровня. Пустая строка снимает статус временного окна. Без аргумента возвращает путь к текущему главному окну или пустую строку. Временное окно повторяет изменения состояния главного окна и может оформляться диспетчером окон иначе; попытка сделать окно временным относительно самого себя приводит к ошибке.
wm_transient()— псевдонимtransient().
-
withdraw() -
Убирает окно с экрана, скрывая его и заставляя диспетчер окон забыть о нём. Если окно ещё ни разу не отображалось, вместо этого оно отображается в скрытом состоянии. Иногда требуется скрыть окно, а затем снова отобразить его (например, с помощью
deiconify()), чтобы некоторые диспетчеры окон заметили изменения атрибутов окна.wm_withdraw()— псевдонимwithdraw().
-
-
class tkinter.Pack -
Менеджер геометрии, который размещает виджеты, упаковывая их вдоль сторон контейнера. Миксин
Packнаследуется всеми виджетами (черезWidget) и предоставляет методы для управления виджетом с помощью менеджера геометрии pack. См. также раздел Управление геометрией.Примечание
Pack,PlaceиGridопределяют короткие имена методовforget(),info(),slaves(),content()иpropagate(). Для виджета неполные имена соответствуют версиям менеджера pack, посколькуPackиMiscстоят передPlaceиGridв порядке разрешения методов независимо от того, какой менеджер фактически управляет виджетом; аconfigure()/config()настраивают параметры виджета, а не его геометрию. Чтобы обратиться к конкретному менеджеру геометрии, используйте явные методыpack_*,grid_*иplace_*(а для настройки геометрии —pack,grid,place).-
pack_configure(cnf={}, **kw) -
pack(cnf={}, **kw) -
Упаковать виджет внутри контейнера, разместив его относительно уже упакованных в него соседних виджетов. Поддерживаются следующие параметры:
- side
-
Сторона контейнера, вдоль которой будет упакован виджет:
'top'(по умолчанию),'bottom','left'или'right'. - fill
-
Следует ли растянуть виджет, чтобы он заполнил отведенную ему область:
'none'(по умолчанию),'x','y'или'both'. - expand
-
Следует ли виджету расширяться, занимая свободное пространство контейнера (логическое значение, по умолчанию — false).
- anchor
-
Где разместить виджет в отведенной ему области, если эта область больше виджета: точка привязки, например
'n'или'sw'(по умолчанию'center'). - ipadx, ipady
-
Внутренний отступ слева и справа (ipadx) или сверху и снизу (ipady) виджета, задаваемый в экранных единицах расстояния (по умолчанию
0). - padx, pady
-
Внешний отступ слева и справа (padx) или сверху и снизу (pady) виджета, задаваемый в экранных единицах расстояния или парой расстояний для двух сторон (по умолчанию
0). - after
-
Упаковать виджет после указанного виджета в порядке упаковки, используя тот же контейнер.
- before
-
Упаковать виджет перед указанным виджетом в порядке упаковки, используя тот же контейнер.
- in_
-
Контейнер, в котором нужно упаковать виджет; по умолчанию используется родительский виджет.
pack(),configure()иconfig()— псевдонимыpack_configure().
-
pack_forget() -
Скрыть виджет и удалить его из порядка упаковки, забыв параметры его упаковки. Позже его можно упаковать повторно с помощью
pack_configure().forget()— псевдонимpack_forget(), за исключениемPanedWindow,ttk.Notebookиttk.PanedWindow, в которых предусмотрен собственный методforget().Не путать с
Wm.forget().
-
pack_info() -
Возвращает словарь текущих параметров упаковки виджета.
info()— псевдонимpack_info().
-
pack_propagate() - pack_propagate(flag)
-
То же, что и
Misc.pack_propagate(), при этом данный виджет рассматривается как контейнер: включить или отключить распространение геометрии.propagate()— псевдонимpack_propagate().
-
pack_slaves() -
То же, что и
Misc.pack_slaves(): возвращает список виджетов, упакованных в этот виджет.slaves()— псевдонимpack_slaves().
-
-
class tkinter.Place -
Менеджер геометрии, который размещает виджеты в контейнере в заданных позициях и с заданными размерами. Миксин
Placeнаследуется всеми виджетами (черезWidget). См. также раздел Управление геометрией.-
place_configure(cnf={}, **kw) -
place(cnf={}, **kw) -
Разместить виджет внутри контейнера в абсолютной или относительной позиции. Поддерживаются следующие параметры:
- x, y
-
Абсолютные горизонтальная и вертикальная координаты точки привязки виджета, задаваемые в экранных единицах расстояния (по умолчанию
0). - relx, rely
-
Горизонтальная и вертикальная координаты точки привязки виджета как доли ширины и высоты контейнера, где
0.0соответствует левому или верхнему краю, а1.0— правому или нижнему краю. Если заданы и абсолютный, и относительный параметры, их значения суммируются. - anchor
-
Точка виджета, которая размещается в указанной позиции: точка привязки, например
'n'или'se'(по умолчанию'nw'). - width, height
-
Абсолютные ширина и высота виджета, задаваемые в экранных единицах расстояния. По умолчанию используется запрошенный размер виджета.
- relwidth, relheight
-
Ширина и высота виджета как доли ширины и высоты контейнера. Если заданы и абсолютный, и относительный параметры, их значения суммируются.
- bordermode
-
Как граница контейнера влияет на размещение:
'inside'(по умолчанию) измеряет область внутри границы,'outside'измеряет область вместе с границей, а'ignore'использует официальную область X. - in_
-
Контейнер, относительно которого размещается виджет; им должен быть родительский виджет или его потомок. По умолчанию используется родительский виджет.
place(),configure()иconfig()— псевдонимыplace_configure().
-
place_forget() -
Скрыть виджет и удалить его из схемы размещения, забыв параметры его размещения.
-
place_info() -
Возвращает словарь текущих параметров размещения виджета.
-
place_slaves() -
То же, что и
Misc.place_slaves(): возвращает список виджетов, размещенных в этом виджете.
-
-
class tkinter.Grid -
Менеджер геометрии, который размещает виджеты в двумерной сетке из строк и столбцов внутри контейнера. Миксин
Gridнаследуется всеми виджетами (черезWidget). См. также раздел Управление геометрией.-
grid_configure(cnf={}, **kw) -
grid(cnf={}, **kw) -
Разместить виджет в ячейке сетки контейнера.
Не путать с
Wm.grid().Поддерживаются следующие параметры:
- row, column
-
Строка и столбец ячейки, в которой размещается виджет; отсчет начинается с
0. По умолчанию column соответствует столбцу после предыдущего виджета, размещенного в том же вызовеgrid_configure()(или0), а row — следующей пустой строке. - rowspan, columnspan
-
Количество строк и столбцов, занимаемых виджетом (по умолчанию
1). - sticky
-
Как разместить или растянуть виджет, если его ячейка больше него: строка, содержащая ноль или более символов
'n','s','e'и'w', обозначающих стороны ячейки, к которым прижимается виджет. Указание одновременно'n'и's'(или'e'и'w') растягивает виджет, чтобы он заполнил ячейку по высоте (или ширине). По умолчанию используется'': виджет располагается по центру в соответствии с запрошенным размером. - ipadx, ipady
-
Внутренний отступ слева и справа (ipadx) или сверху и снизу (ipady) виджета, задаваемый в экранных единицах расстояния (по умолчанию
0). - padx, pady
-
Внешний отступ слева и справа (padx) или сверху и снизу (pady) виджета, задаваемый в экранных единицах расстояния или парой расстояний для двух сторон (по умолчанию
0). - in_
-
Контейнер, в сетке которого нужно разместить виджет; по умолчанию используется родительский виджет.
grid(),configure()иconfig()— псевдонимыgrid_configure().
-
grid_forget() -
Скрыть виджет и удалить его из сетки, забыв параметры его размещения в сетке.
-
grid_remove() -
Скрыть виджет и удалить его из сетки, сохранив параметры его размещения, чтобы при повторном добавлении в сетку он вернулся в ту же ячейку.
-
grid_info() -
Возвращает словарь текущих параметров сетки виджета.
-
grid_bbox(column=None, row=None, col2=None, row2=None) -
То же, что и
Misc.grid_bbox().bbox()— псевдонимgrid_bbox(), за исключениемCanvas,Listbox,Spinbox,Text,ttk.Entryиttk.Treeview, в которых предусмотрен собственный методbbox().
-
grid_columnconfigure(index, cnf={}, **kw) -
То же, что и
Misc.grid_columnconfigure(): запросить или задать параметры столбца сетки (например, weight, minsize, pad и uniform).columnconfigure()— псевдонимgrid_columnconfigure().
-
grid_rowconfigure(index, cnf={}, **kw) -
То же, что и
Misc.grid_rowconfigure(): запросить или задать параметры строки сетки.rowconfigure()— псевдонимgrid_rowconfigure().
-
grid_location(x, y) -
То же, что и
Misc.grid_location(): возвращает(column, row)ячейки, которой принадлежит пиксель с координатами x, y.location()— псевдонимgrid_location().
-
grid_size() -
То же, что и
Misc.grid_size(): возвращает кортеж(columns, rows), содержащий размеры сетки.size()— псевдонимgrid_size(), за исключением виджетаListbox, в котором предусмотрен собственный методsize().
-
grid_propagate() - grid_propagate(flag)
-
То же, что и
Misc.grid_propagate().
-
grid_slaves(row=None, column=None) -
То же, что и
Misc.grid_slaves(): возвращает виджеты, размещенные в сетке; список можно ограничить указанными row и/или column.
-
-
class tkinter.XView -
Миксин, предоставляющий интерфейс горизонтальной прокрутки, общий для таких виджетов, как
Entry,Canvas,Listbox,TextиSpinbox. Метод виджетаxview()регистрируется как command горизонтальнойScrollbar.-
xview(*args) -
Запросить или изменить горизонтальное положение области просмотра. Если аргументы не заданы, возвращает кортеж
(first, last)из двух дробных чисел от 0 до 1, указывающих видимую в данный момент часть документа. В противном случае аргументы передаются команде виджета Tkxviewи обычно формируются полосой прокрутки;xview_moveto()иxview_scroll()предоставляют более удобный интерфейс.
-
xview_moveto(fraction) -
Настроить область просмотра так, чтобы доля fraction общей ширины документа находилась за пределами экрана слева. fraction — число от 0 до 1.
-
xview_scroll(number, what) -
Сдвинуть область просмотра влево или вправо на number единиц. what может быть равно
'units'или'pages'; отрицательное значение number прокручивает влево, положительное — вправо.
-
-
class tkinter.YView -
Миксин, предоставляющий интерфейс вертикальной прокрутки, общий для таких виджетов, как
Canvas,ListboxиText. Метод виджетаyview()регистрируется как command вертикальнойScrollbar.-
yview(*args) -
Запросить или изменить вертикальное положение области просмотра. Если аргументы не заданы, возвращает кортеж
(first, last)из двух дробных чисел от 0 до 1, указывающих видимую в данный момент часть документа. В противном случае аргументы передаются команде виджета Tkyview, обычно формируемой полосой прокрутки;yview_moveto()иyview_scroll()предоставляют более удобный интерфейс.
-
yview_moveto(fraction) -
Настроить область просмотра так, чтобы доля fraction общей высоты документа находилась за пределами экрана над верхним краем. fraction — число от 0 до 1.
-
yview_scroll(number, what) -
Сдвинуть область просмотра вверх или вниз на number единиц. what может быть равно
'units'или'pages'; отрицательное значение number прокручивает вверх, положительное — вниз.
-
-
class tkinter.BaseWidget(master, widgetName, cnf={}, kw={}, extra=()) -
Внутренний базовый класс для всех виджетов. Он наследуется от
Miscи добавляет механизм создания базового виджета Tk; в коде приложений обычно используютWidgetили конкретный класс виджета, а не создают экземплярBaseWidgetнапрямую.-
destroy() -
Уничтожить этот виджет и все его дочерние виджеты, удалив соответствующие виджеты Tk и связанные с ними команды Tcl.
-
-
class tkinter.Widget(master, widgetName, cnf={}, kw={}, extra=()) -
Внутренний базовый класс для стандартных виджетов. Он объединяет
BaseWidgetс миксинами менеджеров геометрииPack,PlaceиGrid, поэтому каждым виджетом можно управлять с помощью любого из трех менеджеров геометрии. Конкретные классы виджетов (Button,Labelи так далее) наследуются отWidget.
Виджеты верхнего уровня
-
class tkinter.Tk(screenName=None, baseName=None, className='Tk', useTk=True, sync=False, use=None) -
Создаёт виджет Tk верхнего уровня, обычно являющийся главным окном приложения, и инициализирует интерпретатор Tcl для этого виджета. Каждый экземпляр имеет собственный связанный с ним интерпретатор Tcl. Наследуется от
MiscиWm.Чтобы создать интерпретатор Tcl без инициализации подсистемы Tk, используйте вместо этого фабричную функцию
Tcl().Класс
Tkобычно создаётся со всеми значениями по умолчанию. Однако в настоящее время распознаются следующие именованные аргументы:- screenName
-
Если задано (в виде строки), устанавливает переменную окружения
DISPLAY. (Только X11) - baseName
-
Имя файла профиля. По умолчанию baseName определяется на основе имени программы (
sys.argv[0]). - className
-
Имя класса виджета. Используется как имя файла профиля, а также как имя, с которым вызывается Tcl (argv0 в interp).
- useTk
-
Если
True, инициализирует подсистему Tk. Функцияtkinter.Tcl()устанавливает для этого параметра значениеFalse. - sync
-
Если
True, выполняет все команды сервера X синхронно, чтобы об ошибках сообщалось немедленно. Может использоваться для отладки. (Только X11) - use
-
Указывает id окна, в которое нужно встроить приложение, вместо создания его в виде независимого окна верхнего уровня. id необходимо указывать так же, как значение параметра -use для виджетов верхнего уровня (то есть в форме, подобной возвращаемой функцией
winfo_id()).Обратите внимание, что на некоторых платформах это будет работать корректно, только если id указывает на фрейм Tk или окно верхнего уровня, для которого включён параметр -container.
Tkсчитывает файлы профиля с именами.className.tclи.baseName.tcl, интерпретирует их в интерпретаторе Tcl и вызываетexec()для содержимого.className.pyи.baseName.py. Путь к файлам профиля задаётся переменной окруженияHOMEили, если она не определена, значениемos.curdir.Примечание
В Windows создание интерпретатора Tcl (путём создания экземпляра
Tkили вызоваTcl()) задаёт для процесса переменную окруженияHOME, если она ещё не задана, устанавливая значение%HOMEDRIVE%%HOMEPATH%(илиUSERPROFILE, илиc:\). Это выполняется Tcl и может повлиять на другой код, который считываетHOME.-
tk -
Объект приложения Tk, созданный при создании экземпляра
Tk. Он предоставляет доступ к интерпретатору Tcl. У каждого виджета, связанного с одним и тем же экземпляромTk, значение атрибутаtkодинаково.
-
master -
Объект виджета, содержащего этот виджет. Для
TkзначениеmasterравноNone, поскольку это главное окно. Термины master и parent похожи и иногда используются как взаимозаменяемые имена аргументов; однако вызовwinfo_parent()возвращает строку с именем виджета, тогда какmasterвозвращает объект. Пары parent/child отражают древовидную связь, а master (или container)/content — структуру контейнера.
-
children -
Непосредственные потомки этого виджета в виде
dict, где ключами являются имена дочерних виджетов, а значениями — объекты их экземпляров.
-
destroy() -
Уничтожает этот виджет и все виджеты-потомки, а для главного окна завершает соединение с базовым интерпретатором Tcl.
-
loadtk() -
Завершает загрузку и инициализацию подсистемы Tk. Это требуется только в том случае, если интерпретатор был создан без Tk (например, с помощью
Tcl()); при значении useTk, равном true, этот метод вызывается автоматически.
-
readprofile(baseName, className) -
Считывает файлы профиля пользователя
.className.tclи.baseName.tclи выполняет их в интерпретаторе Tcl, а также выполняет соответствующие файлы.className.pyи.baseName.py. Этот метод вызывается во время инициализации; см. описание конструктора выше.
-
report_callback_exception(exc, val, tb) -
Сообщает об исключении в обратном вызове. Этот метод вызывается, когда исключение выходит за пределы обратного вызова Tkinter; exc, val и tb — это тип, значение и трассировка стека исключения, возвращаемые функцией
sys.exc_info(). Реализация по умолчанию выводит трассировку стека вsys.stderr. Её можно переопределить, чтобы настроить обработку ошибок, например выводить трассировку стека в диалоговом окне.
-
class tkinter.Toplevel(master=None, cnf={}, **kw) -
Виджет
Toplevel— это окно верхнего уровня, похожее наFrame, за исключением того, что его родитель в X — корневое окно экрана, а не его логический родитель. Его основное назначение — служить контейнером для диалоговых окон и других наборов виджетов; из видимых элементов у него есть только фон и необязательная трёхмерная рамка. К важным параметрам относится menu, который устанавливаетMenuв качестве строки меню окна. Наследуется отBaseWidgetиWm, поэтому окном верхнего уровня управляет оконный менеджер. Полный список параметров см. на справочной странице Tktoplevel.
Классы виджетов
-
class tkinter.Button(master=None, cnf={}, **kw) -
Виджет
Buttonотображает текстовую строку, растровое изображение или изображение и вызывает команду, когда пользователь нажимает на него (щелчком левой кнопки мыши по кнопке или нажатием клавиши пробела, если кнопка находится в фокусе). Наследуется отWidget. Помимо стандартных параметров виджетов, кнопка принимает параметры, описанные на справочной странице Tkbutton, например command (обратный вызов, вызываемый при нажатии кнопки), textvariable, state и default.-
invoke() -
Вызывает связанную с кнопкой команду, если она есть, и возвращает её результат; если с кнопкой не связана ни одна команда, возвращает пустую строку. Если состояние кнопки —
disabled, вызов игнорируется.
-
flash() -
Несколько раз перерисовывает кнопку, переключая её цвета между активным и обычным состояниями, чтобы она мигала. По завершении мигания кнопка остаётся в том же обычном или активном состоянии, в котором находилась при вызове метода. Если состояние кнопки —
disabled, вызов игнорируется.
-
-
class tkinter.Canvas(master=None, cnf={}, **kw) -
Виджет
Canvasреализует структурированную графику. Он отображает любое количество элементов, таких как дуги, линии, овалы, многоугольники, прямоугольники, текст, растровые изображения, изображения и встроенные окна, которые можно рисовать, перемещать, перекрашивать и связывать с событиями. Наследуется отWidget,XViewиYView, поэтому представление можно прокручивать по горизонтали и вертикали с помощьюxview()иyview(). Полный список параметров виджета и элементов см. на странице руководства Tkcanvas.Каждому элементу при создании назначается уникальный целочисленный идентификатор и присваивается ноль или более строковых тегов. Тег — это произвольная строка, не имеющая форму целого числа; один и тот же тег может быть присвоен множеству элементов, что делает теги удобным способом группировки элементов. Специальный тег
'all'соответствует каждому элементу холста, а'current'— элементу, находящемуся под указателем мыши и расположенного выше остальных. Большинство методов принимают аргумент tagOrId, которым может быть целочисленный идентификатор одного элемента или тег, соответствующий нулю или более элементам; как описано на странице руководства Tkcanvas, тег также может быть логическим выражением из тегов, объединённых операторами&&,||,^,!и скобками. Если методу, работающему с одним элементом, передан tagOrId, соответствующий нескольким элементам, обычно используется первый подходящий элемент в списке отображения.Элементы хранятся в списке отображения, определяющем порядок рисования: элементы, расположенные в списке позже, рисуются поверх предыдущих. Новый элемент помещается в начало списка; порядок можно изменить с помощью
tag_raise()иtag_lower().-
create_arc(*args, **kw) -
create_bitmap(*args, **kw) -
create_image(*args, **kw) -
create_line(*args, **kw) -
create_oval(*args, **kw) -
create_polygon(*args, **kw) -
create_rectangle(*args, **kw) -
create_text(*args, **kw) -
create_window(*args, **kw) -
Создают элемент соответствующего типа и возвращают его целочисленный идентификатор. Каждый метод вызывается так:
create_TYPE(coord..., **options): начальные позиционные аргументы задают координаты элемента (отдельными числами, одной последовательностью чисел или парами координат), а именованные аргументы задают параметры, специфичные для элемента. Координаты и расстояния на экране можно задавать числами (интерпретируются как пиксели) или строками с суффиксом единицы измерения ('m','c','i'или'p'для миллиметров, сантиметров, дюймов или типографских пунктов), но сохраняются и возвращаются они всегда в пикселях.Типы элементов:
arc(область в форме дуги, являющаяся частью овала и заданная двумя противоположными по диагонали угламиx1, y1, x2, y2ограничивающего прямоугольника);bitmap(двухцветное растровое изображение, расположенное в точкеx, y);image(изображение Tk, расположенное в точкеx, y);line(линия или кривая, проходящая через точкиx1, y1, ..., xn, yn);oval(круг или эллипс, вписанный в прямоугольникx1, y1, x2, y2);polygon(замкнутый многоугольник, проходящий через точкиx1, y1, ..., xn, yn);rectangle(прямоугольник с угламиx1, y1, x2, y2);text(строка текста, расположенная в точкеx, y); иwindow(дочерний виджет, встроенный в холст в точкеx, yи задаваемый параметром window).Большинство типов элементов поддерживают общий набор стандартных параметров элемента и несколько параметров, специфичных для каждого типа. Имена параметров передаются как именованные аргументы без начального дефиса.
Стандартные параметры элемента:
- fill
-
Цвет заливки внутренней области элемента или цвет рисования элемента line либо символов элемента text. Пустая строка (значение по умолчанию для всех типов, кроме line и text) оставляет элемент незалитым.
- outline
-
Цвет контура элемента. Пустая строка отключает рисование контура.
- width
-
Ширина контура; значение по умолчанию —
1.0. Не действует, если outline — пустая строка. - dash
-
Шаблон штрихов для контура, задаваемый либо последовательностью длин сегментов в пикселях, либо строкой из символов
'.',',','-','_'и пробела. Пустой шаблон (значение по умолчанию) задаёт сплошной контур. - dashoffset
-
Начальное смещение в пикселях в шаблоне dash. Игнорируется, если шаблон dash не задан.
- stipple
-
Растровое изображение, используемое в качестве точечного шаблона при заливке элемента. Полностью поддерживается только в X11.
- outlinestipple
-
Растровое изображение, используемое в качестве точечного шаблона при рисовании контура. Не действует, если outline — пустая строка.
- offset, outlineoffset
-
Смещение точечных шаблонов заливки и контура, задаваемое как
'x,y'или стороной, например'n','se'или'center'. Смещения точечных шаблонов поддерживаются только в X11. - state
-
Переопределяет состояние холста для этого элемента; допустимые значения:
'normal','disabled'или'hidden'. - tags
-
Один тег или последовательность тегов, присваиваемых элементу вместо всех уже имеющихся тегов.
У многих из этих параметров есть варианты active… и disabled… (например, activefill, disabledfill, activewidth, disableddash, activeoutline, disabledstipple), которые переопределяют базовый параметр, когда элемент является активным (находится под указателем мыши) или отключён.
Следующие типы элементов поддерживают дополнительные параметры.
Для элементов
arc:- start
-
Начало углового диапазона дуги в градусах, отсчитываемых против часовой стрелки от положения «3 часа».
- extent
-
Размер углового диапазона в градусах против часовой стрелки от start.
- style
-
Способ рисования дуги:
'pieslice'(значение по умолчанию),'chord'или'arc'.
Для элементов
line:- arrow
-
Место рисования стрелок:
'none'(значение по умолчанию),'first','last'или'both'. - arrowshape
-
Последовательность из трёх расстояний, задающих форму стрелок.
- capstyle
-
Способ рисования концов линий:
'butt'(значение по умолчанию),'projecting'или'round'. - joinstyle
-
Способ рисования вершин линий:
'round'(значение по умолчанию),'bevel'или'miter'. - smooth
-
Метод сглаживания: значение false (по умолчанию) отключает сглаживание; значение
'true'/'bezier'или'raw'задаёт рисование линии в виде кривой. - splinesteps
-
Число отрезков линии, аппроксимирующих каждый сплайн при включённом параметре smooth.
Для элементов
polygon:- joinstyle, smooth, splinesteps
-
Как и для элементов
line; применяется к контуру многоугольника.
Для элементов
text:- text
-
Отображаемая строка; символы новой строки начинают новую строку текста.
- font
-
Шрифт текста.
- justify
-
Способ выравнивания строк:
'left'(значение по умолчанию),'right'или'center'. - anchor
-
Способ позиционирования текста относительно заданной точки; значение по умолчанию —
'center'. - width
-
Максимальная длина строки; если значение не равно нулю, строки переносятся по пробелам.
- angle
-
Угол поворота текста в градусах против часовой стрелки вокруг точки его позиционирования: от
0.0до360.0(по умолчанию0.0). - underline
-
Индекс символа, который нужно подчеркнуть, или
-1, если подчёркивание не требуется.
Для элементов
bitmap:- bitmap
-
Отображаемое растровое изображение.
- anchor
-
Способ позиционирования растрового изображения относительно заданной точки.
- background, foreground
-
Цвета пикселей растрового изображения
0и1; пустое значение background делает пиксели0прозрачными. Для обоих параметров предусмотрены варианты active… и disabled…, а для bitmap — варианты activebitmap и disabledbitmap.
Для элементов
image:- image
-
Отображаемое изображение Tk, предварительно созданное с помощью протоколов изображений.
- anchor
-
Способ позиционирования изображения относительно заданной точки.
Для обоих параметров предусмотрены варианты active… и disabled… (activeimage, disabledimage), используемые в активном и отключённом состояниях.
Для элементов
window:- window
-
Встраиваемый виджет; он должен быть дочерним по отношению к холсту или одному из его предков и не может быть окном верхнего уровня.
- anchor
-
Способ позиционирования окна относительно заданной точки.
- width, height
-
Размер, назначаемый окну; если значение равно нулю (по умолчанию), окну назначается запрошенный им размер.
Элементы
ovalиrectangleне имеют параметров, специфичных для типа; они используют только стандартные параметры элемента.Примечание
В Tk 8.6 для элементов
textдобавлен параметр angle, а в Tk 9.0 — параметр underline.
-
coords(tagOrId) - coords(tagOrId, coordList, /)
- coords(tagOrId, /, *coordList)
-
Запрашивает или изменяет координаты элемента. Если указан только tagOrId, возвращает список координат элемента с плавающей точкой, заданного параметром tagOrId (первого подходящего элемента, если найдено несколько). Если переданы новые координаты, заменяет ими координаты этого элемента; как и в методах
create_*, координаты можно передать отдельными числами, одной последовательностью или парами. Возвращаемые координаты всегда указаны в пикселях независимо от использованных единиц измерения; для прямоугольников, овалов и дуг они расположены в порядке: слева, сверху, справа, снизу.Изменено в версии 3.12: Аргументы теперь объединяются: координаты можно передавать отдельными аргументами, одной последовательностью или сгруппированными попарно, как в методах
create_*.
-
move(tagOrId, xAmount, yAmount, /) -
Перемещает каждый из элементов, заданных параметром tagOrId, в системе координат холста, прибавляя xAmount к каждой координате x и yAmount к каждой координате y элемента.
-
moveto(tagOrId, x='', y='') -
Перемещает элементы, заданные параметром tagOrId, так, чтобы первая пара координат (верхний левый угол ограничивающей рамки) первого подходящего элемента находилась в позиции (x, y). Значение x или y может быть пустой строкой; в этом случае соответствующая координата не изменяется. Все подходящие элементы сохраняют взаимное расположение.
Добавлено в версии 3.8.
-
scale(tagOrId, xOrigin, yOrigin, xScale, yScale, /) -
Изменяет масштаб координат всех элементов, заданных параметром tagOrId, в системе координат холста. Каждая координата x изменяется так, чтобы её расстояние от xOrigin умножилось на xScale, а каждая координата y — так, чтобы её расстояние от yOrigin умножилось на yScale (коэффициент
1.0оставляет координату без изменений).
-
delete(*tagOrIds) -
Удаляет каждый из элементов, заданных аргументами tagOrIds.
-
dchars(tagOrId, first, /) - dchars(tagOrId, first, last, /)
-
Удаляет из каждого элемента, заданного параметром tagOrId, символы (для текстовых элементов) или координаты (для элементов линии и многоугольника) в диапазоне от first до last включительно; по умолчанию last равен first. Элементы, не поддерживающие индексацию, игнорируют эту операцию.
-
insert(tagOrId, beforeThis, string, /) -
Вставляет string в каждый элемент, заданный параметром tagOrId, непосредственно перед символом или координатой с индексом beforeThis. Для элементов линии и многоугольника string должна быть допустимой последовательностью координат.
-
itemcget(tagOrId, option) -
Возвращает текущее значение параметра конфигурации option для элемента, заданного параметром tagOrId (если найдено несколько элементов, используется первый подходящий). Работает подобно
cget(), но применяется к отдельному элементу.
-
itemconfigure(tagOrId, cnf=None, **kw) -
Запрашивает или изменяет параметры конфигурации элементов, заданных параметром tagOrId. Этот метод аналогичен
configure(), но применяется к отдельным элементам, а не ко всему холсту. Если параметры не указаны, возвращает словарь с описанием текущих параметров первого подходящего элемента; в противном случае задаёт указанные параметры для всех подходящих элементов. Допустимы параметры, принимаемые соответствующим методомcreate_*.itemconfig()— это псевдонимitemconfigure().
-
type(tagOrId) -
Возвращает тип элемента, заданного параметром tagOrId (если найдено несколько элементов, возвращает тип первого подходящего), например
'rectangle'или'text', либоNone, если параметру tagOrId не соответствует ни один элемент.
-
gettags(tagOrId, /) -
Возвращает кортеж тегов, присвоенных элементу, заданному параметром tagOrId (если найдено несколько элементов, возвращает теги первого подходящего в порядке списка отображения). Если подходящих элементов нет или у элемента нет тегов, возвращает пустой кортеж.
-
dtag(tagOrId, /) - dtag(tagOrId, tagToDelete, /)
-
Удаляет тег tagToDelete (по умолчанию совпадает с tagOrId) у каждого из элементов, заданных параметром tagOrId. Элементы, которым этот тег не присвоен, не изменяются.
-
addtag(newtag, searchSpec, /, *args) -
Добавляет тег newtag каждому элементу, выбранному спецификацией поиска searchSpec (и любыми дополнительными аргументами args). searchSpec может иметь одно из значений:
'above','all','below','closest','enclosed','overlapping'или'withtag'; приведённые ниже методыaddtag_*служат удобными обёртками для каждого из этих вариантов.
-
addtag_above(newtag, tagOrId) -
Добавляет тег newtag элементу, расположенному непосредственно выше (после) tagOrId в списке отображения.
-
addtag_all(newtag) -
Добавляет тег newtag всем элементам холста.
-
addtag_below(newtag, tagOrId) -
Добавляет тег newtag элементу, расположенному непосредственно ниже (перед) tagOrId в списке отображения.
-
addtag_closest(newtag, x, y, halo=None, start=None) -
Добавляет тег newtag элементу, ближайшему к точке (x, y). Если задан параметр halo, любой элемент в пределах указанного расстояния от точки считается пересекающимся с ней. Если задан параметр start (тег или идентификатор), выбирается ближайший верхний элемент, расположенный ниже start в списке отображения; это позволяет последовательно просматривать все ближайшие элементы.
-
addtag_enclosed(newtag, x1, y1, x2, y2) -
Добавляет тег newtag каждому элементу, полностью заключённому в прямоугольник (x1, y1, x2, y2), где x1 <= x2 и y1 <= y2.
-
addtag_overlapping(newtag, x1, y1, x2, y2) -
Добавляет тег newtag каждому элементу, пересекающемуся с прямоугольником (x1, y1, x2, y2) или полностью заключённому в нём, где x1 <= x2 и y1 <= y2.
-
addtag_withtag(newtag, tagOrId) -
Добавляет тег newtag каждому элементу, заданному параметром tagOrId.
-
find(searchSpec, /, *args) -
Возвращает кортеж идентификаторов всех элементов, выбранных спецификацией поиска searchSpec (и любыми дополнительными аргументами args), в порядке наложения, начиная с самого нижнего элемента. Спецификация поиска может иметь любую из форм, принимаемых методом
addtag(). Приведённые ниже методыfind_*представляют собой более удобные обёртки для этого метода.
-
find_above(tagOrId) -
Возвращает кортеж с идентификатором элемента, расположенного непосредственно выше tagOrId в списке отображения.
-
find_all() -
Возвращает кортеж идентификаторов всех элементов холста в порядке наложения.
-
find_below(tagOrId) -
Возвращает кортеж с идентификатором элемента, расположенного непосредственно ниже tagOrId в списке отображения.
-
find_closest(x, y, halo=None, start=None) -
Возвращает кортеж с идентификатором элемента, ближайшего к точке (x, y). Параметры halo и start интерпретируются так же, как в
addtag_closest().
-
find_enclosed(x1, y1, x2, y2) -
Возвращает кортеж идентификаторов всех элементов, полностью заключённых в прямоугольник (x1, y1, x2, y2).
-
find_overlapping(x1, y1, x2, y2) -
Возвращает кортеж идентификаторов всех элементов, пересекающихся с прямоугольником (x1, y1, x2, y2) или полностью заключённых в нём.
-
find_withtag(tagOrId) -
Возвращает кортеж идентификаторов всех элементов, заданных параметром tagOrId.
-
tag_raise(tagOrId, aboveThis=None, /) -
Перемещает все элементы, заданные параметром tagOrId, на новую позицию в списке отображения непосредственно выше элемента, заданного параметром aboveThis, или в начало списка, если aboveThis не указан. При перемещении нескольких элементов их взаимный порядок сохраняется. Не влияет на элементы встроенных окон, порядок наложения которых задаётся методами
Misc.tkraise()иMisc.lower().lift()иtkraise()— это псевдонимыtag_raise().
-
tag_lower(tagOrId, belowThis=None, /) -
Перемещает все элементы, заданные параметром tagOrId, на новую позицию в списке отображения непосредственно ниже элемента, заданного параметром belowThis, или в конец списка, если belowThis не указан. При перемещении нескольких элементов их взаимный порядок сохраняется. Не влияет на элементы встроенных окон.
lower()— это псевдонимtag_lower().Примечание
В
Canvasметодыtkraise()/lift()иlower()изменяют порядок наложения элементов холста, перекрывая унаследованные методыMisc.tkraise()/Misc.lift()иMisc.lower(), изменяющие порядок наложения самого виджета, поэтому последние методы недоступны.
-
tag_bind(tagOrId, sequence=None, func=None, add=None) -
Связывает функцию обратного вызова func с событием sequence для всех элементов, заданных параметром tagOrId, так что func вызывается при возникновении этого события для одного из элементов. Работает подобно
Widget.bind, но применяется к элементам холста, а не ко всему виджету; связывать можно только события мыши, клавиатуры и виртуальные события. События мыши направляются текущему элементу, а события клавиатуры — элементу в фокусе (см.focus()). Если add имеет значение true, новая привязка добавляется к уже имеющимся привязкам той же последовательности, а не заменяет их. Возвращает идентификатор привязанной функции, который можно передать методуtag_unbind().
-
tag_unbind(tagOrId, sequence, funcid=None) -
Удаляет привязку события sequence для всех элементов, заданных параметром tagOrId. Если задан параметр funcid, снимается привязка и удаляется регистрация только соответствующей функции обратного вызова (идентификатор возвращается методом
tag_bind()).Изменено в версии 3.13: Если задан параметр funcid, снимается привязка только соответствующей функции обратного вызова.
-
bbox(tagOrId, /, *tagOrIds) -
Возвращает 4-элементный кортеж
(x1, y1, x2, y2), задающий приблизительную ограничивающую рамку в пикселях, охватывающую все элементы, заданные параметром tagOrId, а также любые дополнительные параметры tagOrIds. Результат может на несколько пикселей превышать фактическую ограничивающую рамку. ВозвращаетNone, если подходящих элементов нет или подходящие элементы ничего не отображают.Этот метод перекрывает унаследованный
Misc.bbox(); для получения ограничивающей рамки сетки используйтеgrid_bbox().
-
canvasx(screenx, gridspacing=None) -
Для координаты x окна screenx возвращает координату x холста, отображаемую в этом месте. Если задан параметр gridspacing, результат округляется до ближайшего кратного ему значения.
-
canvasy(screeny, gridspacing=None) -
Для координаты y окна screeny возвращает координату y холста, отображаемую в этом месте. Если задан параметр gridspacing, результат округляется до ближайшего кратного ему значения.
-
-
focus() - focus(tagOrId, /)
-
Если указан tagOrId, установить для холста фокус клавиатуры на первый элемент, задаваемый tagOrId и поддерживающий курсор вставки; если такого элемента нет, фокус не изменяется. Если tagOrId — пустая строка, сбросить фокус, чтобы ни один элемент его не имел. Если аргумент не указан, вернуть идентификатор элемента, который в данный момент имеет фокус, или пустую строку, если такого элемента нет. Курсор вставки отображается у элемента, только если этот элемент имеет фокус и его холст находится в фокусе ввода.
Этот метод перекрывает унаследованный
Misc.focus(); для фокусировки самого виджета используйтеfocus_set().
-
icursor(tagOrId, index, /) -
Установить курсор вставки элементов, заданных tagOrId, непосредственно перед символом, заданным index. Элементы, не поддерживающие курсор вставки, не изменяются. Курсор отображается, только когда элемент имеет фокус, но его положение можно задать в любое время.
-
index(tagOrId, index, /) -
Вернуть в виде целого числа числовой индекс в элементе tagOrId, соответствующий index, который представляет собой текстовое описание позиции (для текстовых элементов — индекс символа, для элементов линий и многоугольников — индекс координаты). Если tagOrId соответствует нескольким элементам, используется первый элемент, поддерживающий индексацию.
-
select_adjust(tagOrId, index) -
Переместить конец выделения в tagOrId, ближайший к index, в позицию index, а другой конец сделать точкой привязки для последующих вызовов
select_to(). Если выделение в данный момент находится не в tagOrId, метод действует какselect_to().
-
select_clear() -
Снять выделение, если оно находится на этом холсте; в противном случае ничего не делать.
-
select_from(tagOrId, index) -
Установить точку привязки выделения непосредственно перед символом, заданным index в элементе, заданном tagOrId. Это не изменяет само выделение, а устанавливает фиксированный конец для последующих вызовов
select_to().
-
select_item() -
Вернуть идентификатор элемента, содержащего выделение, или
None, если выделение находится не на этом холсте. В отличие отfind()и методовfind_*, этот метод возвращает идентификатор в виде строки, а не целого числа.
-
select_to(tagOrId, index) -
Выделить символы элемента tagOrId между точкой привязки выделения и index, включая символ с индексом index. Точка привязки задаётся последним вызовом
select_adjust()илиselect_from().
-
scan_mark(x, y) -
Запомнить x, y и текущее положение представления для использования в последующих вызовах
scan_dragto(). Обычно этот метод связывают с нажатием кнопки мыши на виджете.
-
scan_dragto(x, y, gain=10) -
Прокрутить холст на величину, равную gain, умноженному на разницу между x, y и координатами, переданными при последнем вызове
scan_mark(). Обычно этот метод связывают с событиями перемещения мыши на виджете, создавая эффект быстрого перетаскивания холста по его окну.
-
postscript(cnf={}, **kw) -
Создать представление части или всего холста в формате PostScript (Encapsulated PostScript, версия 3.0). Если задан параметр file или channel, данные PostScript записываются туда, а возвращается пустая строка; в противном случае они возвращаются в виде строки. По умолчанию создаётся только область, видимая в данный момент в окне, поэтому обычно необходимо сначала вызвать
update()либо использовать параметры width и height. Поддерживаются, в частности, параметры colormap, colormode, file, fontmap, height, pageanchor, pageheight, pagewidth, pagex, pagey, rotate, width, x и y.
-
-
class tkinter.Checkbutton(master=None, cnf={}, **kw) -
Виджет
Checkbuttonотображает текстовую строку, растровое изображение или изображение вместе с квадратным индикатором и при нажатии переключает логическое состояние выбора. Он обладает всеми функциями простой кнопки и, кроме того, может быть выбран: при выборе индикатор отображается с галочкой, а связанная переменная получает значениеonvalue; при снятии выбора индикатор отображается пустым, а переменная получает значениеoffvalue. Наследуется отWidget. Помимо стандартных параметров виджетов, кнопка-флажок принимает параметры, описанные на справочной странице Tkcheckbutton, например variable, onvalue, offvalue и command.-
invoke() -
Выполнить те же действия, что и при нажатии кнопки-флажка мышью: переключить состояние выбора кнопки и вызвать связанную команду, если она задана. Вернуть результат выполнения команды или пустую строку, если с кнопкой-флажком не связана команда. Метод ничего не делает, если состояние кнопки-флажка —
disabled.
-
select() -
Выбрать кнопку-флажок и установить для связанной переменной значение
onvalue.
-
deselect() -
Снять выбор кнопки-флажка и установить для связанной переменной значение
offvalue.
-
toggle() -
Переключить состояние выбора кнопки, перерисовав её и изменив связанную переменную в соответствии с новым состоянием.
-
flash() -
Несколько раз перерисовать кнопку-флажок, попеременно используя активные и обычные цвета, чтобы она мигнула. По окончании мигания кнопка-флажок остаётся в том же обычном или активном состоянии, в котором находилась при вызове метода. Метод ничего не делает, если состояние кнопки-флажка —
disabled.
-
-
class tkinter.Entry(master=None, cnf={}, **kw) -
Виджет
Entryотображает одну строку текста и позволяет пользователю её редактировать. Наследуется отWidgetиXView; поскольку поля ввода могут содержать строки, слишком длинные для отображения в окне, они поддерживают горизонтальную прокрутку с помощьюxview().Помимо стандартных параметров виджетов, поле ввода принимает параметры, описанные на справочной странице Tk
entry. Среди важных параметров — textvariable (имя переменной, синхронизируемой с содержимым поля ввода), show (если задан, каждый символ отображается указанным символом, а не своим настоящим значением; полезно для ввода пароля), validate и validatecommand (вместе они позволяют функции обратного вызова принимать или отклонять изменения), а также state (одно из значений'normal','disabled'или'readonly').Многие из приведённых ниже методов принимают аргумент index, задающий символ в строке поля ввода. Как описано на справочной странице Tk
entry, index может быть числом (отсчёт начинается с 0),'insert'(символ непосредственно после курсора вставки),'end'(позиция сразу после последнего символа),'anchor'(точка привязки выделения),'sel.first'и'sel.last'(границы выделения) или@x(символ, находящийся под точкой с координатой x x в окне). Индексы за пределами допустимого диапазона округляются до ближайшего допустимого значения.-
delete(first, last=None) -
Удалить символы, начиная с индекса first и до индекса last, не включая его. Если last не указан, удаляется только символ с индексом first.
-
get() -
Вернуть текущую строку поля ввода.
-
insert(index, string) -
Вставить string непосредственно перед символом, заданным index.
-
icursor(index) -
Установить курсор вставки непосредственно перед символом, заданным index.
-
index(index) -
Вернуть числовой индекс, соответствующий index.
-
selection_adjust(index) -
Найти конец выделения, ближайший к символу с индексом index, и переместить этот конец в позицию index (включая её, но не заходя за неё); другой конец станет точкой привязки для последующих вызовов
selection_to(). Если в поле ввода нет выделения, будет создано новое выделение между index и последней точкой привязки включительно.select_adjust()— это псевдонимselection_adjust().
-
selection_clear() -
Снять выделение, если оно находится в этом виджете. Если выделение находится не в этом виджете, метод ничего не делает.
select_clear()— это псевдонимselection_clear().Примечание
Этот метод перекрывает унаследованный
Misc.selection_clear(), который снимает выделение X; этот метод недоступен дляEntry.
-
selection_from(index) -
Установить точку привязки выделения непосредственно перед символом с индексом index, не изменяя выделение.
select_from()— это псевдонимselection_from().
-
selection_present() -
Вернуть
True, если в поле ввода выбраны символы, иFalseв противном случае.select_present()— это псевдонимselection_present().
-
selection_range(start, end) -
Выделить символы, начиная с символа с индексом start и заканчивая символом непосредственно перед end. Если end указывает на тот же символ, что и start, или на более ранний символ, выделение снимается.
select_range()— это псевдонимselection_range().
-
selection_to(index) -
Выделить символы между точкой привязки и index: если index находится перед точкой привязки, выделение охватывает символы от index до точки привязки, не включая её; если после неё — от точки привязки до index, не включая его; если позиции совпадают, ничего не происходит. Точка привязки задаётся последним вызовом
selection_from()илиselection_adjust(). Если в поле ввода нет выделения, новое выделение создаётся с использованием последней точки привязки.select_to()— это псевдонимselection_to().
-
scan_mark(x) -
Запомнить x и текущее положение представления в окне поля ввода для использования в последующих вызовах
scan_dragto(). Обычно метод связывают с нажатием кнопки мыши на виджете.
-
scan_dragto(x) -
Вычислить разницу между x и значением x, переданным при последнем вызове
scan_mark(), и сдвинуть представление влево или вправо на величину, в 10 раз превышающую эту разницу. Обычно метод связывают с событиями перемещения мыши, создавая эффект быстрого перетаскивания поля ввода по окну.
-
-
class tkinter.Frame(master=None, cnf={}, **kw) -
Виджет
Frame— это простой контейнер. Его основное назначение — служить разделителем или контейнером для сложных компоновок окон; он имеет только фон и необязательную трёхмерную рамку, которая придаёт ему вид выпуклой или утопленной панели. Наследуется отWidget. Полный список параметров см. на справочной странице Tkframe.
-
class tkinter.Label(master=None, cnf={}, **kw) -
Виджет
Labelотображает неинтерактивную текстовую строку, растровое изображение или изображение. Отображаемый текст задаётся параметром text или связывается с переменной через textvariable; изображение можно показать с помощью параметра image. Весь текст должен использовать один шрифт, но может занимать несколько строк; один символ можно подчеркнуть с помощью параметра underline. Наследуется отWidget. Полный список параметров см. на справочной странице Tklabel.
-
class tkinter.LabelFrame(master=None, cnf={}, **kw) -
Виджет
LabelFrame— это контейнер, обладающий функциямиFrame, а также способностью отображать метку. Текст метки задаётся параметром text, а её положение — параметром labelanchor; в качестве метки можно использовать произвольный виджет, указав его в параметре labelwidget. Наследуется отWidget. Полный список параметров см. на справочной странице Tklabelframe.
-
class tkinter.Listbox(master=None, cnf={}, **kw) -
Виджет
Listboxотображает список однострочных текстовых элементов — по одному на строку, — в котором пользователь может выбрать один или несколько элементов. Способ выбора задаётся параметром selectmode, который может принимать одно из значений:browse(по умолчанию; можно выбрать не более одного элемента и перетаскивать его мышью),single(не более одного элемента),multiple(любое количество элементов, каждый из которых переключается отдельно) илиextended(любое количество элементов, включая несмежные диапазоны, выбираемые щелчком и перетаскиванием). Наследуется отWidget,XViewиYView, поэтому представление можно прокручивать по горизонтали и вертикали с помощьюxview()иyview(). Полный список параметров см. на справочной странице Tklistbox.Многие методы принимают аргумент index, задающий конкретный элемент. Как описано на справочной странице Tk
listbox, index может быть числовым индексом (отсчёт начинается с 0 сверху),'active'(элемент с курсором положения, задаваемым с помощьюactivate()),'anchor'(точка привязки выделения, задаваемая с помощьюselection_anchor()),'end'(последний элемент; для методовindex()иinsert()— позиция сразу после него) или@x,y(элемент под точкой с координатами x, y в окне списка). Аргументы с именами first и last задают индексы в тех же форматах.-
insert(index, *elements) -
Вставить указанные elements как новые элементы непосредственно перед элементом, заданным index. Если index —
'end', новые элементы добавляются в конец списка.
-
delete(first, last=None) -
Удалить элементы от first до last включительно. Если last не указан, по умолчанию используется first, поэтому удаляется один элемент.
-
get(first, last=None) -
Если last не указан, вернуть содержимое элемента, заданного first, или пустую строку, если first соответствует несуществующему элементу. Если last указан, вернуть кортеж всех элементов от first до last включительно.
-
size() -
Вернуть общее число элементов в списке.
Этот метод перекрывает унаследованный
Misc.size(); для определения размера сетки используйтеgrid_size().
-
index(index) -
Вернуть целочисленное значение индекса, соответствующее index, или
None, если index находится за пределами допустимого диапазона. Если index —'end', результатом будет количество элементов в списке (а не индекс последнего элемента).
-
bbox(index) -
Вернуть кортеж
(x, y, width, height), описывающий ограничивающую рамку текста элемента, заданного index, в пикселях относительно виджета. ВернутьNone, если на экране не видна ни одна часть этого элемента или если index соответствует несуществующему элементу; если элемент виден лишь частично, результат всё равно описывает его полную область, включая невидимые части.Этот метод перекрывает унаследованный
Misc.bbox(); для определения ограничивающей рамки сетки используйтеgrid_bbox().
-
nearest(y) -
Для заданной координаты y в окне списка вернуть индекс видимого элемента, ближайшего к этой координате.
-
see(index) -
Изменить положение представления так, чтобы элемент, заданный index, стал видимым. Если элемент уже виден, метод ничего не делает; если он находится у края окна, список прокручивается ровно настолько, чтобы показать его у этого края, в противном случае список прокручивается так, чтобы поместить элемент в центре.
-
activate(index) -
Сделать активным элемент, заданный index. Если index находится за пределами диапазона элементов, вместо него активируется ближайший элемент. Когда виджет находится в фокусе ввода, активный элемент отображается в соответствии с параметром activestyle; его индекс можно получить с помощью индекса
'active'.
-
curselection() -
Вернуть кортеж с числовыми индексами всех выбранных в данный момент элементов или пустой кортеж, если ни один элемент не выбран.
-
selection_anchor(index) -
Установить точку привязки выделения на элемент, заданный index. Если index соответствует несуществующему элементу, используется ближайший элемент. Точка привязки выделения — это конец выделения, который остаётся неподвижным при выделении перетаскиванием мыши; впоследствии к нему можно обратиться с помощью индекса
'anchor'.select_anchor()— это псевдонимselection_anchor().
-
selection_clear(first, last=None) -
Снять выделение со всех выбранных элементов в диапазоне от first до last включительно. Состояние выделения элементов за пределами этого диапазона не изменяется.
select_clear()— это псевдонимselection_clear().Примечание
Этот метод перекрывает унаследованный
Misc.selection_clear(), который снимает выделение X; этот метод недоступен дляListbox.
-
selection_includes(index) -
Вернуть
True, если элемент, заданный index, выбран в данный момент, иFalseв противном случае.select_includes()— это псевдонимselection_includes().
-
selection_set(first, last=None) -
Выбрать все элементы в диапазоне от first до last включительно, не изменяя состояние выделения элементов за пределами этого диапазона.
select_set()— это псевдонимselection_set().
-
itemcget(index, option) -
Вернуть текущее значение параметра конфигурации option для элемента, заданного index.
-
itemconfigure(index, cnf=None, **kw) -
Получить или изменить параметры конфигурации элемента, заданного index. Работает аналогично
configure(), но применяется к отдельному элементу, а не ко всему списку. Если параметры не указаны, возвращается словарь с описанием текущих параметров элемента; в противном случае задаются указанные параметры. Поддерживаемые параметры элемента: background, foreground, selectbackground и selectforeground.itemconfig()— это псевдонимitemconfigure().
-
scan_mark(x, y) -
Запомнить x, y и текущее положение представления для использования в последующих вызовах
scan_dragto(). Обычно этот метод связывают с нажатием кнопки мыши на виджете.
-
scan_dragto(x, y) -
Прокрутить список на величину, в 10 раз превышающую разницу между x, y и координатами, переданными при последнем вызове
scan_mark(). Обычно этот метод связывают с событиями перемещения мыши на виджете, создавая эффект быстрого перетаскивания списка по окну.
-
-
class tkinter.Menu(master=None, cnf={}, **kw) -
Виджет
Menuотображает столбец элементов, каждый из которых может быть командой, флажком, переключателем, каскадным элементом (открывающим связанное подменю) или разделителем. Меню используются в качестве строки меню окна верхнего уровня, как раскрывающиеся меню, открываемые каскадным элементом или кнопкой меню, а также как всплывающие меню. Наследует отWidget.Многие методы работы с элементами принимают аргумент index, который задаёт элемент для выполнения операции. Как описано на справочной странице Tk
menu, index может быть числовым индексом (отсчёт начинается с 0 сверху),'active'(текущий активный элемент),'end'или'last'(самый нижний элемент),'none'(элемента нет; в Tcl записывается как{}),@y(элемент, покрывающий пиксель с координатой y y в окне меню) или шаблоном, сопоставляемым с метками элементов сверху вниз.-
add(itemType, cnf={}, **kw) -
Добавить новый элемент в конец меню. itemType может принимать одно из значений
'command','cascade','checkbutton','radiobutton'или'separator'и определяет тип нового элемента; остальные параметры задают его настройки. Вспомогательные методыadd_command(),add_cascade(),add_checkbutton(),add_radiobutton()иadd_separator()вызывают этот метод с соответствующим значением itemType.Элемент настраивается с помощью следующих параметров, хотя не каждый параметр применим ко всем типам элементов (разделитель не принимает ни один из них):
- label
-
Текст, отображаемый в элементе.
- command
-
Функция, вызываемая при активации элемента (элементы-команды, флажки и переключатели).
- accelerator
-
Строка, отображаемая справа от элемента и указывающая сочетание клавиш; сама по себе она не создаёт привязку.
- underline
-
Индекс символа в метке, который следует подчеркнуть для навигации с клавиатуры.
- state
-
Одно из значений
'normal','active'или'disabled'. - image
-
Изображение, отображаемое вместо текстовой метки или вместе с ней.
- compound
-
Расположение изображения относительно текста:
'none'(по умолчанию),'text','image','top','bottom','left'или'right'. - bitmap
-
Растровое изображение, отображаемое вместо текстовой метки.
- font
-
Шрифт для текста.
- background, foreground
-
Цвета фона и переднего плана элемента в обычном состоянии (в macOS не учитываются).
- activebackground, activeforeground
-
Цвета фона и переднего плана, используемые, когда элемент активен (в macOS не учитываются).
- columnbreak
-
Если значение истинно, элемент начинает новый столбец, а не размещается под предыдущим элементом.
- hidemargin
-
Если значение истинно, стандартные поля вокруг элемента не отображаются; это полезно, когда меню используется в качестве палитры.
- menu
-
Подменю, открываемое каскадным элементом; оно должно быть дочерним элементом этого меню.
- variable
-
Переменная, связанная с элементом-флажком или элементом-переключателем.
- onvalue, offvalue
-
Значения, сохраняемые в variable, когда элемент-флажок установлен или снят.
- value
-
Значение, сохраняемое в variable, когда выбран элемент-переключатель.
- indicatoron
-
Определяет, следует ли отображать индикатор элемента-флажка или элемента-переключателя.
- selectcolor
-
Цвет индикатора элемента-флажка или элемента-переключателя, когда он выбран.
- selectimage
-
Изображение, отображаемое при выборе элемента-флажка или элемента-переключателя, если также задан параметр image.
-
add_cascade(cnf={}, **kw) -
Добавить новый каскадный элемент в конец меню. Каскадному элементу соответствует подменю, заданное параметром menu; оно должно быть дочерним элементом этого меню. При открытии элемента подменю появляется рядом с ним.
-
add_checkbutton(cnf={}, **kw) -
Добавить новый элемент-флажок в конец меню. При активации элемент-флажок переключается между значениями onvalue и offvalue, сохраняя результат в связанной с ним переменной variable, и отображает индикатор, показывающий, выбран ли он.
-
add_command(cnf={}, **kw) -
Добавить новую команду в конец меню. Элемент-команда ведёт себя почти как кнопка: при его активации вызывается обработчик, заданный параметром command.
-
add_radiobutton(cnf={}, **kw) -
Добавить новый элемент-переключатель в конец меню. Элементы-переключатели с одинаковой переменной variable образуют группу, в которой одновременно может быть выбран только один элемент; при выборе элемента его значение value сохраняется в переменной.
-
add_separator(cnf={}, **kw) -
Добавить разделитель в конец меню. Разделитель отображается в виде горизонтальной линии и не может быть активирован или вызван.
-
insert(index, itemType, cnf={}, **kw) -
Работает так же, как
add(), но новый элемент вставляется непосредственно перед элементом, заданным аргументом index, а не добавляется в конец меню. itemType может принимать одно из значений'command','cascade','checkbutton','radiobutton'или'separator'. Вспомогательные методыinsert_command(),insert_cascade(),insert_checkbutton(),insert_radiobutton()иinsert_separator()вызывают этот метод с соответствующим значением itemType.
-
insert_cascade(index, cnf={}, **kw) -
Вставить новый каскадный элемент перед элементом, заданным аргументом index (см.
add_cascade()).
-
insert_checkbutton(index, cnf={}, **kw) -
Вставить новый элемент-флажок перед элементом, заданным аргументом index (см.
add_checkbutton()).
-
insert_command(index, cnf={}, **kw) -
Вставить новую команду перед элементом, заданным аргументом index (см.
add_command()).
-
insert_radiobutton(index, cnf={}, **kw) -
Вставить новый элемент-переключатель перед элементом, заданным аргументом index (см.
add_radiobutton()).
-
insert_separator(index, cnf={}, **kw) -
Вставить разделитель перед элементом, заданным аргументом index (см.
add_separator()).
-
delete(index1, index2=None) -
Удалить все элементы меню от index1 до index2 включительно. Если index2 не указан, по умолчанию используется index1, поэтому удаляется один элемент. Попытки удалить элемент для отрыва меню игнорируются; вместо этого удалите его, изменив параметр tearoff.
-
entrycget(index, option) -
Вернуть текущее значение параметра конфигурации option для элемента, заданного аргументом index.
-
entryconfigure(index, cnf=None, **kw) -
Запросить или изменить параметры конфигурации элемента, заданного аргументом index. Этот метод аналогичен
configure(), но применяется к отдельному элементу, а не ко всему меню. Если параметры не указаны, возвращается словарь с описанием текущих параметров элемента; в противном случае задаются переданные параметры. Поддерживаются параметры, принимаемые методомadd()для типа данного элемента.entryconfig()— это псевдонимentryconfigure().
-
index(index) -
Вернуть числовой индекс, соответствующий index, или
None, если index не выбирает ни одного элемента.
-
type(index) -
Вернуть тип элемента, заданного аргументом index: одно из значений
'command','cascade','checkbutton','radiobutton','separator'или'tearoff'(для элемента отрыва меню).
-
activate(index) -
Сделать элемент, заданный аргументом index, активным, повторно отобразив его с активными цветами, и деактивировать любой ранее активный элемент. Если index не выбирает ни одного элемента или выбранный элемент отключён, меню останется без активного элемента.
-
invoke(index) -
Выполнить действие элемента, заданного аргументом index, как если бы по нему щёлкнули. Если элемент отключён, ничего не происходит. Если с элементом связана команда command, возвращается результат её выполнения; в противном случае возвращается пустая строка.
-
post(x, y) -
Отобразить меню на экране в координатах x и y относительно корневого окна, при необходимости скорректировав их так, чтобы меню целиком помещалось на экране. Если задан параметр postcommand, он вычисляется до отображения меню.
-
tk_popup(x, y, entry='') -
Отобразить меню как всплывающее в координатах x и y относительно корневого окна. Если задан параметр entry, меню располагается так, чтобы этот элемент отображался под указателем.
-
unpost() -
Скрыть меню, чтобы оно больше не отображалось, а также закрыть любое открытое каскадное подменю нижнего уровня. Не действует в Windows и macOS, где закрытием меню управляет сама система.
-
xposition(index) -
Вернуть координату x самого левого пикселя элемента, заданного аргументом index, внутри окна меню.
Добавлено в версии 3.3.
-
yposition(index) -
Вернуть координату y самого верхнего пикселя элемента, заданного аргументом index, внутри окна меню.
-
-
class tkinter.Menubutton(master=None, cnf={}, **kw) -
Виджет
Menubuttonотображает текстовую строку, растровое изображение или картинку и при нажатии пользователем открывает связанноеMenu, заданное параметром menu. Как иLabel, он может отображать текст text, переменную textvariable или изображение image, а параметр direction определяет расположение меню относительно кнопки. Наследует отWidget. Полный список параметров см. на справочной странице Tkmenubutton.
-
class tkinter.Message(master=None, cnf={}, **kw) -
Виджет
Messageотображает неинтерактивную текстовую строку, заданную параметром text или связанную с переменной через textvariable. В отличие отLabel, он разбивает строку на несколько строк, чтобы получить заданное соотношение сторон, выбирая места переноса по границам слов; кроме того, он может выравнивать текст по левому краю, по центру или по правому краю. Наследует отWidget. Полный список параметров см. на справочной странице Tkmessage.
-
class tkinter.OptionMenu(master, variable, value, *values, **kwargs) -
Вспомогательный подкласс
Menubutton, отображающий всплывающее меню взаимоисключающих вариантов. variable — этоVariable, значение которой синхронизируется с выбором; value — первоначальный вариант, а values — остальные элементы меню. Для именованного аргумента command можно задать обработчик, вызываемый с выбранным значением; именованный аргумент name задаёт имя виджета Tk.-
destroy() -
Уничтожить виджет, также удалив связанное всплывающее меню.
Изменено в версии 3.14: Добавлена поддержка именованного аргумента name.
-
-
class tkinter.PanedWindow(master=None, cnf={}, **kw) -
PanedWindow— это виджет-менеджер геометрии, который размещает любое количество дочерних панелей в строке (если orient имеет значение'horizontal') или в столбце (если orient имеет значение'vertical'). Каждая панель содержит один виджет, а соседние панели разделены подвижным разделителем, который пользователь может перетаскивать мышью, изменяя размеры виджетов по обе стороны. Наследует отWidget.Параметр orient задаёт направление размещения, sashwidth — ширину каждого разделителя, а sashrelief — его рельеф. Если параметр showhandle имеет значение true, на каждом разделителе рисуется небольшая ручка, за которую пользователь может потянуть. Полный список параметров см. на справочной странице Tk
panedwindow.-
add(child, **kw) -
Добавить child в PanedWindow как новую панель, разместив её после всех существующих панелей. Именованные аргументы задают параметры управления расположением для child; ими могут быть любые параметры, принимаемые методом
paneconfigure().
-
remove(child) -
Удалить панель, содержащую child, из PanedWindow. Все параметры управления геометрией для child забываются.
forget()— это псевдонимremove(). Этот метод перекрывает унаследованный метод менеджера геометрииforget(); чтобы удалить сам виджет из менеджера, используйтеpack_forget(),grid_forget()илиplace_forget().
-
panes() -
Вернуть кортеж управляемых PanedWindow виджетов — по одному на панель — в порядке их расположения.
-
panecget(child, option) -
Вернуть текущее значение параметра управления option для панели, содержащей child. Значение option может быть любым из разрешённых методом
paneconfigure().
-
paneconfigure(tagOrId, cnf=None, **kw) -
Запросить или изменить параметры управления панелью, содержащей виджет tagOrId. Если параметры не указаны, возвращается словарь с описанием всех доступных параметров панели; если в виде строки указано имя одного параметра, возвращается описание этого параметра; в противном случае задаются переданные параметры. Поддерживаются, в частности, следующие параметры: after и before (вставить панель после или перед другим управляемым окном), height и width (внешние размеры окна, включая рамку), minsize (минимальный размер по измерению панели), padx и pady (дополнительное пространство с каждой стороны окна), sticky (расположить или растянуть окно внутри увеличенной панели, используя строку из символов
n,s,eиw), hide (скрыть панель, оставив её в списке панелей) и stretch (определяет распределение дополнительного пространства между панелями: одно из значений'always','first','last','middle'или'never').paneconfig()— это псевдонимpaneconfigure().
-
identify(x, y) -
Определить компонент PanedWindow под точкой с координатами x и y в системе координат окна. Если точка находится над разделителем или его ручкой, результатом будет кортеж из двух элементов: индекс разделителя или ручки и слово, указывающее, находится ли точка над разделителем или ручкой, например
(0, 'sash')или(2, 'handle'). Если точка находится над любой другой частью PanedWindow, результатом будет пустая строка.
-
sash(*args) -
Запросить или изменить положение разделителей в PanedWindow. Это тонкая обёртка над подкомандой Tk
sash; обычно вместо неё следует использовать вспомогательные методыsash_coord(),sash_mark()иsash_place().
-
sash_coord(index) -
Вернуть текущую пару координат x и y для разделителя, заданного аргументом index, который должен быть целым числом от 0 до числа панелей в PanedWindow минус один. Возвращаемые координаты соответствуют верхнему левому углу области, содержащей разделитель.
-
sash_mark(index) -
Запомнить текущую позицию мыши для разделителя, заданного аргументом index, чтобы использовать её при последующих операциях перетаскивания разделителя.
-
sash_place(index, x, y) -
Разместить разделитель, заданный аргументом index, в точке с координатами x и y.
-
proxy(*args) -
Запросить или изменить положение прокси разделителя — «призрачного» разделителя, отображаемого при перетаскивании разделителя в режиме непрозрачного изменения размера. Это тонкая обёртка над подкомандой Tk
proxy; обычно вместо неё следует использовать вспомогательные методыproxy_coord(),proxy_forget()иproxy_place().
-
proxy_coord() -
Вернуть кортеж с координатами x и y последнего положения прокси.
-
proxy_forget() -
Убрать прокси с экрана.
-
proxy_place(x, y) -
Разместить прокси в точке с координатами x и y.
-
-
class tkinter.Radiobutton(master=None, cnf={}, **kw) -
Виджет
Radiobuttonотображает текстовую строку, растровое изображение или картинку вместе с ромбовидным или круглым индикатором и позволяет выбрать один вариант из нескольких. Он обладает всеми свойствами обычной кнопки и, кроме того, может быть выбран: обычно несколько переключателей используют одну переменную variable; выбор одного из них устанавливает эту переменную в значение value этого переключателя. Каждый переключатель также отслеживает переменную и автоматически выбирается или снимает выбор при её изменении. Наследует отWidget. Помимо стандартных параметров виджета переключатель принимает параметры, описанные на справочной странице Tkradiobutton, например variable, value и command.-
invoke() -
Выполнить действия, которые произошли бы при нажатии пользователем переключателя мышью: выбрать кнопку и вызвать связанный с ней обработчик, если он задан. Вернуть результат выполнения обработчика или пустую строку, если с переключателем не связан обработчик. Если состояние переключателя равно
disabled, вызов игнорируется.
-
select() -
Выбрать переключатель и установить связанную с ним переменную в значение, соответствующее этому виджету.
-
deselect() -
Снять выбор переключателя и установить связанную с ним переменную в пустую строку. Если этот переключатель не был выбран, метод ничего не делает.
-
flash() -
Несколько раз перерисовать переключатель, чередуя активные и обычные цвета, чтобы он мигнул. По окончании переключатель остаётся в том же обычном или активном состоянии, в котором находился при вызове метода. Если состояние переключателя равно
disabled, вызов игнорируется.
-
-
class tkinter.Scale(master=None, cnf={}, **kw) -
Виджет
Scaleпозволяет пользователю выбрать числовое значение, перемещая ползунок вдоль шкалы. Он может располагаться вертикально или горизонтально и при необходимости отображать метку и текущее значение. Наследует отWidget.Помимо стандартных параметров виджета шкала принимает параметры, описанные на справочной странице Tk
scale, например from_, to, resolution, orient, tickinterval, variable и command. Как и в других случаях вtkinter, начальный-имени параметра Tk опускается; параметр from записывается какfrom_, посколькуfromявляется ключевым словом Python.При использовании нецелого значения resolution см. раздел числовые значения и локаль.
-
get() -
Вернуть текущее значение шкалы. Результат будет целым числом, если параметр resolution шкалы даёт целые числа, и числом с плавающей точкой в противном случае.
-
set(value) -
Установить значение шкалы равным value, переместив соответствующим образом ползунок. Если шкала отключена, метод ничего не делает.
-
coords(value=None) -
Вернуть кортеж
(x, y)с координатами точки в пикселях относительно виджета на центральной линии шкалы, соответствующей значению value. Если value не указано, используется текущее значение шкалы.
-
identify(x, y) -
Вернуть строку с описанием части шкалы, находящейся в точке с координатами в пикселях x, y:
'slider','trough1'(часть шкалы выше или левее ползунка),'trough2'(ниже или правее ползунка) либо пустую строку, если точка не находится над ни одним из этих элементов.
-
-
class tkinter.Scrollbar(master=None, cnf={}, **kw) -
Виджет
Scrollbarотображает ползунок и две стрелки, позволяющие пользователю прокручивать связанный виджет, напримерListbox,Text,CanvasилиEntry. Он связывается с прокручиваемым виджетом: параметру xscrollcommand или yscrollcommand этого виджета задаётся методset()полосы прокрутки, а параметру command полосы прокрутки — методxview()илиyview()прокручиваемого виджета. Наследуется отWidget.-
get() -
Возвращает текущие настройки полосы прокрутки в виде кортежа
(first, last)из двух дробных чисел от 0 до 1, описывающих видимую в данный момент часть документа, переданную последним вызовомset().
-
set(first, last) -
Настраивает полосу прокрутки. first и last — дробные числа от 0 до 1, задающие позиции начала и конца видимой части связанного документа. Обычно этот метод регистрируется как параметр xscrollcommand или yscrollcommand прокручиваемого виджета и вызывается этим виджетом.
-
activate(index=None) -
Помечает элемент index (один из
'arrow1','slider'или'arrow2') как активный и отображает его с учётом параметров activebackground и activerelief. Если index не указан, возвращает имя текущего активного элемента илиNone, если активных элементов нет.Изменено в версии 3.5: Аргумент index теперь необязателен.
-
delta(deltax, deltay) -
Возвращает число с плавающей точкой, обозначающее дробное изменение настройки полосы прокрутки, соответствующее перемещению ползунка на deltax пикселей по горизонтали (для горизонтальных полос прокрутки) или на deltay пикселей по вертикали (для вертикальных полос прокрутки).
-
fraction(x, y) -
Возвращает число с плавающей точкой от 0 до 1, показывающее, где точка с пиксельными координатами x, y находится в желобе: 0 соответствует верхнему или левому краю желоба, а 1 — нижнему или правому.
-
identify(x, y) -
Возвращает имя элемента под точкой с пиксельными координатами x, y (например,
'arrow1') или пустую строку, если точка не находится ни на одном элементе полосы прокрутки.
-
-
class tkinter.Spinbox(master=None, cnf={}, **kw) -
Виджет
Spinboxпохож наEntry, но оснащён парой кнопок со стрелками вверх и вниз, позволяющих пользователю перебирать значения из диапазона, а также вводить значение напрямую. Набор значений может представлять собой числовой диапазон, заданный параметрами from_, to и increment, или явный список строк, заданный параметром values (который имеет приоритет над диапазоном). При каждом нажатии стрелки вызывается функция обратного вызова command, если она задана; параметр wrap определяет, будет ли переход за любой конец диапазона переносить выбор на другой конец; параметр format задаёт формат числовых значений; параметр validate включает проверку введённого текста. Наследуется отWidgetиXView.Сведения о нецелочисленном значении increment см. в разделе числовые значения и локаль.
Многие методы принимают аргумент index, указывающий на символ в строке поля со счётчиком. Как описано на странице руководства Tk
spinbox, index может быть числовым индексом (отсчёт начинается с 0),'anchor'(якорная точка выделения),'end'(позиция сразу после последнего символа),'insert'(символ сразу после курсора вставки),'sel.first'или'sel.last'(концы выделения) либо@x(символ, находящийся под пикселем с координатой x x в окне).-
get() -
Возвращает строку поля со счётчиком.
-
insert(index, s) -
Вставляет символы строки s перед символом, заданным параметром index.
-
delete(first, last=None) -
Удаляет один или несколько символов поля со счётчиком. first — индекс первого удаляемого символа, а last — индекс символа сразу после последнего удаляемого. Если last не указан, удаляется один символ с индексом first.
-
icursor(index) -
Устанавливает курсор вставки непосредственно перед символом, заданным параметром index.
-
index(index) -
Возвращает числовой индекс, соответствующий параметру index, в виде строки.
-
bbox(index) -
Возвращает кортеж из четырёх целых чисел
(x, y, width, height), описывающий ограничивающую рамку символа, заданного параметром index. x и y — пиксельные координаты верхнего левого угла символа относительно виджета, а width и height — его размеры в пикселях. Ограничивающая рамка может находиться за пределами видимой области окна.Этот метод перекрывает унаследованный метод
Misc.bbox(); для получения ограничивающей рамки сетки используйтеgrid_bbox().
-
identify(x, y) -
Возвращает имя элемента окна в точке с пиксельными координатами x, y: одно из
'buttondown','buttonup','entry'или'none'.
-
invoke(element) -
Нажимает кнопку-счётчик, заданную параметром element (
'buttonup'или'buttondown'), запуская связанное с ней действие.
-
scan(*args) -
Тонкая обёртка над подкомандой виджета Tk
scan, предназначенная для быстрой прокрутки перетаскиванием:scan('mark', x)запоминает x и текущее положение, аscan('dragto', x)смещает представление относительно этой отметки. Методыscan_mark()иscan_dragto()являются обёртками для этих двух форм.
-
scan_mark(x) -
Запоминает x и текущее положение в окне поля со счётчиком для последующего вызова
scan_dragto(). Обычно этот метод связывают с нажатием кнопки мыши на виджете.
-
scan_dragto(x) -
Смещает представление на величину, равную десятикратной разнице между x и значением x, переданным при последнем вызове
scan_mark(). Обычно этот метод связывают с событиями перемещения мыши, создавая эффект быстрого перетаскивания поля со счётчиком по окну.
-
selection(*args) -
Тонкая обёртка над подкомандой виджета Tk
selection, предназначенная для изменения выделения в поле со счётчиком. Метод имеет несколько форм, определяемых первым аргументом, напримерselection('adjust', index),selection('clear'),selection('element', ?elem?),selection('from', index),selection('present'),selection('range', start, end)иselection('to', index). Методыselection_adjust(),selection_clear(),selection_element(),selection_from(),selection_present(),selection_range()иselection_to()являются обёртками для этих форм.
-
selection_adjust(index) -
Находит конец выделения, ближайший к символу, заданному параметром index, и перемещает этот конец выделения в позицию index (включая её, но не выходя за неё). Другой конец становится якорной точкой для последующих вызовов
selection_to(). Если в данный момент в поле со счётчиком ничего не выделено, создаётся новое выделение, включающее символы от index до последней якорной точки включительно.
-
selection_clear() -
Снимает выделение, если оно находится в этом виджете. Если выделение находится не в этом виджете, метод ничего не делает.
Примечание
Этот метод перекрывает унаследованный метод
Misc.selection_clear(), который очищает выделение X; этот метод недоступен дляSpinbox.
-
selection_element(element=None) -
Устанавливает или возвращает текущий выбранный элемент. Если задан параметр element (одно из
'buttonup','buttondown'или'none'), соответствующая кнопка-счётчик выбирается и отображается нажатой; в противном случае возвращается имя текущего выбранного элемента.
-
selection_from(index) -
Устанавливает якорную точку выделения непосредственно перед символом, заданным параметром index, не изменяя само выделение.
Добавлено в версии 3.8.
-
selection_present() -
Возвращает
True, если в поле со счётчиком есть выделенные символы, иFalseв противном случае.Добавлено в версии 3.8.
-
selection_range(start, end) -
Выделяет символы, начиная с символа с индексом start и заканчивая символом перед end. Если end указывает на тот же символ, что и start, или на предшествующий ему, выделение снимается.
Добавлено в версии 3.8.
-
selection_to(index) -
Выделяет текст между index и якорной точкой. Если index находится перед якорной точкой, выделяется текст от index до якорной точки, не включая её; если после — от якорной точки до index, не включая его; если они совпадают, ничего не происходит. Якорная точка задаётся последним вызовом
selection_from()илиselection_adjust(). Если в этом виджете ничего не выделено, создаётся новое выделение с использованием последней якорной точки.Добавлено в версии 3.8.
-
-
class tkinter.Text(master=None, cnf={}, **kw) -
Виджет
Textотображает и редактирует многострочный текст. Фрагментам текста можно задавать стили с помощью тегов, определённые позиции можно помечать плавающими метками, а в текст можно встраивать произвольные изображения и другие виджеты. Кроме того, виджет предоставляет неограниченный механизм отмены и повтора действий и поддерживает связанные виджеты, использующие одни и те же базовые данные. Наследуется отWidget,XViewиYView, поэтому представление можно прокручивать по горизонтали и вертикали с помощьюxview()иyview(). Полный список параметров см. на странице руководства Tktext.Большинство методов принимают один или несколько аргументов index, задающих позицию в тексте. Как описано на странице руководства Tk
text, индекс представляет собой строку, состоящую из базового значения и, необязательно, одного или нескольких модификаторов. Базовым значением может быть'line.char'(строка line, символ char; нумерация строк начинается с 1, а символов в строке — с 0;'line.end'обозначает символ новой строки в конце строки),'end'(позиция сразу после последнего символа новой строки), имя метки,'tag.first'или'tag.last'(первый символ с тегом tag или позиция сразу после последнего такого символа), имя встроенного изображения или окна либо@x,y(символ, охватывающий пиксельные координаты x, y в виджете). Модификатор, например'+5 chars','-3 lines','linestart','lineend','wordstart'или'wordend', изменяет индекс относительно его базового значения; можно объединить несколько модификаторов, которые применяются слева направо, например'insert wordstart - 1 c'.-
insert(index, chars, *args) -
Вставить строку chars перед символом с индексом index (если index равен
'end', то перед последним символом новой строки). По умолчанию новый текст наследует все теги, присутствующие с обеих сторон от точки вставки. Если задан аргумент args, он состоит из чередующихся значений tagList и chars: предшествующий им текст chars получает именно перечисленные теги (список тегов может быть одним именем тега или последовательностью имён), заменяя окружающие теги.
-
delete(index1, index2=None) -
Удалить символы от index1 до index2, не включая символ с индексом index2. Если index2 не задан, удаляется единственный символ с индексом index1. Виджет всегда сохраняет символ новой строки в качестве последнего символа, поэтому операция удаления, которая могла бы его удалить, соответствующим образом корректируется.
-
replace(index1, index2, chars, *args) -
Заменить символы от index1 до index2, не включая символ с индексом index2, строкой chars. Это эквивалентно вызову
delete(), за которым следует вызовinsert()с индексом index1; аргумент args интерпретируется так же, как вinsert().Добавлено в версии 3.3.
-
get(index1, index2=None) -
Вернуть в виде строки текст от index1 до index2, не включая символ с индексом index2. Если index2 не задан, вернуть единственный символ с индексом index1. Встроенные изображения и окна в результат не включаются.
-
index(index) -
Вернуть позицию, соответствующую index, в канонической форме
'line.char'.
-
compare(index1, op, index2) -
Сравнить позиции index1 и index2 с помощью оператора отношения op, который должен иметь одно из значений
'<','<=','==','>=','>'или'!=', и вернуть результат в виде логического значения.
-
count(index1, index2, *options, return_ints=False) -
Подсчитать количество элементов указанных типов между index1 и index2; результат будет отрицательным, если index1 находится после index2. Каждый из параметров options задаёт тип подсчитываемых элементов:
'chars','displaychars','displayindices','displaylines','indices','lines','xpixels'или'ypixels'(по умолчанию, если параметр не задан, используется'indices'). Псевдопараметр'update'принудительно пересчитывает устаревшую информацию о компоновке перед обработкой следующих параметров. Если return_ints имеет значение true и задан только один параметр подсчёта, возвращается обычное целое число; в противном случае возвращается кортеж, содержащий по одному целому числу для каждого параметра подсчёта (илиNone, если результат пуст).Добавлено в версии 3.3.
Изменено в версии 3.13: Добавлен параметр return_ints.
-
see(index) -
Настроить представление так, чтобы символ с индексом index был виден. Если он уже виден, метод ничего не делает; если он находится недалеко за пределами видимой области, виджет прокручивается ровно настолько, чтобы показать его у ближайшего края; в противном случае прокручивается так, чтобы index оказался в центре окна.
-
bbox(index) -
Вернуть кортеж
(x, y, width, height)с ограничивающим прямоугольником видимой части символа с индексом index в пикселях илиNone, если этот символ не виден на экране.Этот метод затеняет унаследованный метод
Misc.bbox(); для получения ограничивающего прямоугольника сетки используйтеgrid_bbox().
-
dlineinfo(index) -
Вернуть кортеж
(x, y, width, height, baseline)с описанием отображаемой строки, содержащей index: первые четыре значения задают ограничивающий прямоугольник строки в пикселях, а baseline задаёт смещение базовой линии от верхнего края области. ВернутьNone, если эта отображаемая строка не видна на экране.
-
mark_set(markName, index) -
Установить метку с именем markName непосредственно перед символом с индексом index, создав метку, если она ещё не существует. Созданная таким способом метка по умолчанию имеет правую гравитацию.
-
mark_unset(*markNames) -
Удалить все метки, имена которых указаны в markNames. Специальные метки
insertиcurrentудалить нельзя.
-
mark_names() -
Вернуть кортеж с именами всех меток, установленных в данный момент в виджете.
-
mark_gravity(markName, direction=None) -
Если direction не задан, вернуть гравитацию метки markName:
'left'или'right'. В противном случае установить для неё гравитацию direction. Гравитация определяет, с какой стороны от метки появляется текст, вставленный в её позицию: метка с правой гравитацией (значение по умолчанию) остаётся справа от такого текста.
-
mark_next(index) -
Вернуть имя первой метки в позиции index или после неё либо
None, если такой метки нет. Если index — это имя метки, поиск начинается сразу после неё.
-
mark_previous(index) -
Вернуть имя последней метки в позиции index или перед ней либо
None, если такой метки нет. Если index — это имя метки, поиск начинается сразу перед ней.
-
tag_add(tagName, index1, *args) -
Добавить тег tagName к символам от index1 до следующего индекса в args, не включая его. В args могут следовать дополнительные пары индексов для пометки других диапазонов; если в конце указан одиночный индекс, тег применяется только к символу с этим индексом.
-
tag_remove(tagName, index1, index2=None) -
Удалить тег tagName у символов от index1 до index2, не включая символ с индексом index2 (или у единственного символа с индексом index1, если index2 не задан). Сам тег продолжает существовать, даже если он не назначен ни одному символу.
-
tag_delete(*tagNames) -
Удалить все теги, имена которых указаны в tagNames, сняв их со всех символов и удалив их параметры и привязки.
-
tag_configure(tagName, cnf=None, **kw) -
Запросить или изменить параметры конфигурации тега tagName. Этот метод аналогичен
configure(), но применяется к тегу, а не ко всему виджету: если параметры не заданы, возвращается словарь с описанием текущих параметров; в противном случае устанавливаются указанные параметры. При определении тега таким способом ему также назначается приоритет выше приоритета всех существующих тегов.Поддерживаются следующие параметры тегов, управляющие внешним видом помеченного текста:
- font
-
Шрифт текста.
- foreground
-
Цвет текста.
- background
-
Цвет области за текстом.
- fgstipple, bgstipple
-
Растровые изображения для штриховки переднего плана (текста) и фона; полноценно поддерживаются только в X11.
- borderwidth
-
Ширина рамки вокруг текста, нарисованной в соответствии с параметром relief (по умолчанию
0). - relief
-
Трёхмерный вид рамки текста:
'flat'(значение по умолчанию),'raised','sunken','ridge','groove'или'solid'. - offset
-
Смещение текста вверх относительно базовой линии (или вниз, если значение отрицательное); используется для верхних и нижних индексов.
- underline
-
Нужно ли подчёркивать текст.
- underlinefg
-
Цвет подчёркивания; по умолчанию совпадает с цветом текста.
- overstrike
-
Нужно ли проводить линию через середину текста.
- overstrikefg
-
Цвет зачёркивающей линии; по умолчанию совпадает с цветом текста.
- elide
-
Нужно ли скрывать текст.
- justify
-
Выравнивание первого символа отображаемой строки:
'left'(значение по умолчанию),'right'или'center'. - wrap
-
Способ переноса слишком длинных строк:
'char','word'или'none'. - lmargin1, lmargin2
-
Отступ в пикселях для первой отображаемой строки логической строки и для остальных её отображаемых строк.
- lmargincolor
-
Цвет области левого поля.
- rmargin
-
Ширина правого поля в пикселях.
- rmargincolor
-
Цвет области правого поля.
- spacing1, spacing2, spacing3
-
Дополнительный интервал в пикселях над первой отображаемой строкой логической строки, между её отображаемыми строками и под её последней отображаемой строкой.
- tabs
-
Набор позиций табуляции в том же формате, что и параметр tabs виджета.
- tabstyle
-
Способ интерпретации позиций табуляции:
'tabular'или'wordprocessor'. - selectbackground, selectforeground
-
Цвета фона и переднего плана выделенного текста.
Примечание
В Tk 8.6 добавлены параметры lmargincolor, overstrikefg, rmargincolor, selectbackground, selectforeground и underlinefg.
tag_config()— псевдонимtag_configure().
-
tag_cget(tagName, option) -
Вернуть текущее значение параметра конфигурации option для тега tagName.
-
tag_names(index=None) -
Если index не задан, вернуть кортеж с именами всех тегов, определённых в виджете; в противном случае вернуть только имена тегов, применённых к символу с индексом index. Имена расположены в порядке возрастания приоритета.
-
tag_ranges(tagName) -
Вернуть кортеж индексов, описывающих все диапазоны текста с тегом tagName. Результат содержит чередующиеся начальные и конечные индексы, поэтому элементы
2*iи2*i+1задают границы диапазона номер i.
-
tag_nextrange(tagName, index1, index2=None) -
Выполнить поиск вперёд от index1 (до index2, если он задан) и найти первый диапазон символов с тегом tagName; вернуть двухэлементный кортеж с его начальным и конечным индексами либо пустой кортеж, если такого диапазона нет.
-
tag_prevrange(tagName, index1, index2=None) -
Выполнить поиск назад от index1 (до index2, если он задан) и найти ближайший предшествующий диапазон символов с тегом tagName; вернуть двухэлементный кортеж с его начальным и конечным индексами либо пустой кортеж, если такого диапазона нет.
-
tag_raise(tagName, aboveThis=None) -
Повысить приоритет тега tagName, установив его непосредственно выше приоритета aboveThis, или назначить ему наивысший приоритет среди всех тегов, если aboveThis не задан. Если параметры отображения перекрывающихся тегов конфликтуют, действует тег с более высоким приоритетом.
-
tag_lower(tagName, belowThis=None) -
Понизить приоритет тега tagName, установив его непосредственно ниже приоритета belowThis, или назначить ему наинизший приоритет среди всех тегов, если belowThis не задан.
-
tag_bind(tagName, sequence, func, add=None) -
Привязать событие sequence для символов с тегом tagName к функции обратного вызова func, чтобы func вызывалась при возникновении этого события над таким символом. Если add имеет значение true, привязка добавляется к существующим привязкам для sequence; в противном случае она заменяет их. Работает так же, как
bind(), и возвращает идентификатор новой привязки.
-
tag_unbind(tagName, sequence, funcid=None) -
Удалить привязки события sequence для символов с тегом tagName. Если задан funcid, удаляется только соответствующая привязка (возвращённая методом
tag_bind()), а её функция обратного вызова снимается с регистрации.Изменено в версии 3.13: Если задан funcid, снимается привязка только соответствующей функции обратного вызова.
-
image_create(index, cnf={}, **kw) -
Встроить изображение в позицию index и вернуть имя, присвоенное этому экземпляру изображения; затем его можно использовать в качестве индекса или передать другим методам
image_*. Параметры, задаваемые в cnf и kw, включают image (отображаемое изображение Tk), name (базовое имя экземпляра), align, padx и pady.
-
image_cget(index, option) -
Вернуть текущее значение параметра конфигурации option для встроенного изображения в позиции index.
-
image_configure(index, cnf=None, **kw) -
Запросить или изменить параметры конфигурации встроенного изображения в позиции index; аналогично
configure(), но применяется к этому изображению.
-
image_names() -
Вернуть кортеж с именами всех изображений, встроенных в виджет.
Примечание
Этот метод затеняет унаследованный метод
Misc.image_names(), который возвращает имена всех изображений в интерпретаторе Tcl; этот метод недоступен дляText.
-
window_create(index, cnf={}, **kw) -
Встроить окно (любой виджет) в позицию index. Параметры, задаваемые в cnf и kw, включают window (встраиваемый виджет), create (функцию обратного вызова, которая создаёт виджет по запросу), align, stretch, padx и pady. Встраиваемый виджет должен быть потомком родительского виджета текста.
-
window_cget(index, option) -
Вернуть текущее значение параметра конфигурации option для встроенного окна в позиции index.
-
window_configure(index, cnf=None, **kw) -
Запросить или изменить параметры конфигурации встроенного окна в позиции index; аналогично
configure(), но применяется к этому окну.window_config()— псевдонимwindow_configure().
-
window_names() -
Вернуть кортеж с именами всех окон, встроенных в виджет.
-
edit(*args) -
Низкоуровневая оболочка команды виджета Tk
edit, управляющей механизмом отмены и повтора действий, а также флагом изменения; args содержит подкомандуeditи её аргументы. Представленные ниже методыedit_*()являются её простыми оболочками и обычно удобнее в использовании.
-
edit_modified(arg=None) -
Если аргумент arg не задан, вернуть текущее состояние флага изменения — true или false; флаг автоматически устанавливается при вставке или удалении текста. В противном случае установить для флага логическое значение arg.
-
edit_undo() -
Отменить последнее действие редактирования, то есть все операции вставки и удаления, записанные в стеке отмены после предыдущего разделителя, и переместить их в стек повтора. Если стек отмены пуст, возбуждается исключение
TclError. Метод не действует, если параметр undo не имеет значения true. Начиная с Tk 9.0, возвращает кортеж индексов, задающих границы изменённых диапазонов текста.
-
edit_redo() -
Повторить последнее отменённое действие редактирования, если с тех пор не было выполнено других изменений, и переместить его обратно в стек отмены. Если стек повтора пуст, возбуждается исключение
TclError. Метод не действует, если параметр undo не имеет значения true. Начиная с Tk 9.0, возвращает кортеж индексов, задающих границы изменённых диапазонов текста.
-
edit_reset() -
Очистить стеки отмены и повтора.
-
edit_separator() -
Добавить разделитель в стек отмены, обозначив границу между действиями редактирования для отмены и повтора. Метод не действует, если параметр undo не имеет значения true. Если параметр autoseparators имеет значение true, разделители добавляются автоматически.
-
search(pattern, index, stopindex=None, forwards=None, backwards=None, exact=None, regexp=None, nocase=None, count=None, elide=None) -
Выполнить поиск по шаблону pattern, начиная с index, и вернуть индекс первого символа первого совпадения либо пустую строку, если совпадений нет. Если задан stopindex, поиск заканчивается на нём; в противном случае он продолжается от одного конца текста до другого, пока не вернётся к начальной позиции. Направление и режим поиска управляются следующими логическими именованными параметрами: forwards или backwards задают направление (по умолчанию поиск выполняется вперёд); exact (значение по умолчанию) или regexp задают поиск буквального совпадения или совпадения с регулярным выражением; nocase включает поиск без учёта регистра; elide включает поиск также и в скрытом тексте. Если count — это
Variable, в него записывается количество позиций индексов в совпадении.
-
scan_mark(x, y) -
Сохранить значения x, y и текущего представления для последующих вызовов
scan_dragto(). Обычно этот метод привязывают к нажатию кнопки мыши в виджете.
-
scan_dragto(x, y) -
Прокрутить виджет на расстояние, в 10 раз превышающее разницу между x, y и координатами, переданными при последнем вызове
scan_mark(). Обычно этот метод привязывают к событиям движения мыши, создавая эффект быстрого перетаскивания текста по окну.
-
debug(boolean=None) -
Если boolean не задан, вернуть информацию о том, включена ли проверка внутренней согласованности структуры данных B-дерева. В противном случае включить или отключить её. Этот параметр общий для всех текстовых виджетов и может заметно замедлить работу виджетов с большим объёмом текста.
-
dump(index1, index2=None, command=None, **kw) -
Вернуть содержимое виджета от index1 до index2, не включая символ с индексом index2 (или только сегмент с индексом index1, если index2 не задан), а также сведения о тексте, метках, тегах, изображениях и окнах. Результат представляет собой список троек
(key, value, index), где key принимает одно из значений'text','mark','tagon','tagoff','image'или'window'. По умолчанию возвращаются все типы данных; если для любого из именованных параметров all, text, mark, tag, image или window задано значение true, в результат включаются только выбранные типы. Если задан command, она вызывается для каждой тройки с тремя её значениями в качестве аргументов, а метод ничего не возвращает.
-
peer_create(newPathName, cnf={}, **kw) -
Создать связанный текстовый виджет с именем пути newPathName, который использует те же базовые данные, что и этот виджет (текст, метки, теги, изображения и стек отмены). Изменения, внесённые через любой связанный виджет, отражаются во всех остальных. По умолчанию связанный виджет охватывает те же строки, что и этот; это можно изменить, указав стандартные параметры текста, в том числе startline и endline.
Добавлено в версии 3.3.
-
peer_names() -
Вернуть кортеж с именами путей связанных виджетов этого виджета, не включая сам виджет.
Добавлено в версии 3.3.
-
yview_pickplace(*what) -
Настроить представление так, чтобы указанное в what место было видно. Это устаревший эквивалент метода
see(), который следует использовать вместо него.
-
Классы переменных
-
class tkinter.Variable(master=None, value=None, name=None) -
Базовый класс для обёрток переменных Tk. Переменная Tk — это значение, хранящееся в интерпретаторе Tcl, которое можно связать с виджетами с помощью параметров variable или textvariable (см. Связывание переменных с виджетами), чтобы изменения передавались в обоих направлениях: при обновлении переменной обновляются все связанные с ней виджеты, а при редактировании пользователем такого виджета обновляется переменная.
master — это виджет, интерпретатор Tcl которого владеет переменной; если он не указан, используется корневое окно по умолчанию. value — начальное значение; если оно не указано, используется значение по умолчанию, зависящее от типа. name — имя переменной в интерпретаторе Tcl; если оно не указано, генерируется уникальное имя вида
'PY_VARnum'. Если name совпадает с именем существующей переменной, а value не указано, сохраняется существующее значение.В большинстве случаев следует использовать один из приведённых ниже типизированных подклассов —
StringVar,IntVar,DoubleVarилиBooleanVar, — а не использоватьVariableнапрямую.Примечание
При сборке мусора для
Variableеё переменная Tcl удаляется. Пока виджет связан с ней, храните ссылку на переменную, например, сохраняя её в атрибуте, а не в локальной переменной. Иначе Tk повторно создаст переменную Tcl, чтобы виджет продолжал работать, но больше никогда её не удалит, что приведёт к утечке одной переменной Tcl для каждой отброшенной обёртки.Изменено в версии 3.10: Две переменные теперь считаются равными (
==), только если у них одинаковые имена, они принадлежат к одному классу и относятся к одному интерпретатору Tcl.-
get() -
Возвращает текущее значение переменной. Для базового класса значение возвращается в виде строки; типизированные подклассы преобразуют его в соответствующий тип Python.
-
set(value) -
Задаёт переменной значение value.
initialize()— это псевдонимset().Добавлено в версии 3.3: Вариант написания initialize.
-
trace_add(mode, callback) -
Регистрирует callback, который будет вызван при обращении к переменной в соответствии с mode. mode — одна из строк
'array','read','write'или'unset'либо список или кортеж таких строк.При срабатывании callback вызывается с тремя аргументами: именем переменной Tcl, индексом (или пустой строкой, если переменная не является элементом массива) и mode, вызвавшим этот вызов.
Возвращает внутреннее имя зарегистрированного обратного вызова, которое можно передать в
trace_remove().Добавлено в версии 3.6.
-
trace_remove(mode, cbname) -
Удаляет обратный вызов отслеживания переменной. mode должен совпадать с mode, переданным в
trace_add(), а cbname — это имя обратного вызова, возвращённое методомtrace_add().Добавлено в версии 3.6.
-
trace_info() -
Возвращает список пар
(modes, cbname), описывающих все текущие трассировки переменной; modes — это кортеж строк режимов, а cbname — внутреннее имя обратного вызова.Добавлено в версии 3.6.
-
trace_variable(mode, callback) -
Регистрирует callback, который будет вызван при обращении к переменной в соответствии с mode. mode — одна из строк
'r','w'или'u', соответствующих чтению, записи или удалению. Возвращает внутреннее имя зарегистрированного обратного вызова.trace()— это псевдонимtrace_variable().Устарело с версии 3.6: Вместо этого используйте
trace_add(). Этот метод является обёрткой для функции Tcl, удалённой в Tcl 9.0.
-
trace_vdelete(mode, cbname) -
Удаляет обратный вызов отслеживания с именем cbname, зарегистрированный для mode с помощью
trace_variable().Устарело с версии 3.6: Вместо этого используйте
trace_remove(). Этот метод является обёрткой для функции Tcl, удалённой в Tcl 9.0.
-
trace_vinfo() -
Возвращает список пар
(mode, cbname)для всех трассировок, установленных для переменной с помощьюtrace_variable().Устарело с версии 3.6: Вместо этого используйте
trace_info(). Этот метод является обёрткой для функции Tcl, удалённой в Tcl 9.0.
-
-
class tkinter.StringVar(master=None, value=None, name=None) -
Подкласс
Variable, содержащий строку. Значение по умолчанию —''.-
get() -
Возвращает значение переменной в виде
str.
-
-
class tkinter.IntVar(master=None, value=None, name=None) -
Подкласс
Variable, содержащий целое число. Значение по умолчанию —0.-
get() -
Возвращает значение переменной в виде
int.
-
-
class tkinter.DoubleVar(master=None, value=None, name=None) -
Подкласс
Variable, содержащий число с плавающей точкой. Значение по умолчанию —0.0.-
get() -
Возвращает значение переменной в виде
float.
Примечание
Число с плавающей точкой всегда разбирается с точкой (
.) в качестве десятичного разделителя, однакоSpinbox,Scaleиttk.Spinboxформатируют его с учётом локалиLC_NUMERIC. В локали, где используется запятая, они формируют значение, котороеget()не может прочитать, вызываяTclError. Чтобы избежать этого, установитеLC_NUMERICв локаль, использующую точку (например,'C'). -
-
class tkinter.BooleanVar(master=None, value=None, name=None) -
Подкласс
Variable, содержащий логическое значение. Значение по умолчанию —False.-
get() -
Возвращает значение переменной в виде
bool. ВызываетValueError, если значение невозможно интерпретировать как логическое.
-
set(value) -
Задаёт переменной значение value, преобразуя его в логическое.
initialize()— это псевдонимset().Добавлено в версии 3.3: Вариант написания initialize.
-
Классы изображений
-
class tkinter.Image(imgtype, name=None, cnf={}, master=None, **kw) -
Базовый класс для изображений Tk. imgtype — это тип изображения Tk:
'photo'или'bitmap'. Изображение — это именованный объект, который можно отображать в виджетах с помощью параметра image; удаление всех ссылок на объектImageприводит к удалению соответствующего изображения Tk. Обычно создаютPhotoImageилиBitmapImage, а не экземплярImageнапрямую.Параметры конфигурации изображения задаются с помощью cnf и kw; позднее их можно получить и изменить с помощью протокола отображения (используя
image[key]) или методаconfigure().-
configure(**kw) -
Изменяет один или несколько параметров конфигурации изображения. Допустимые параметры зависят от типа изображения; см.
PhotoImageиBitmapImage.config()— это псевдонимconfigure().
-
height() -
Возвращает высоту изображения в пикселях.
-
width() -
Возвращает ширину изображения в пикселях.
-
type() -
Возвращает тип изображения, то есть значение imgtype, с которым оно было создано (например,
'photo'или'bitmap').
-
-
class tkinter.PhotoImage(name=None, cnf={}, master=None, **kw) -
Полноцветное изображение (тип изображения Tk
photo), хранящееся внутри системы с различной степенью прозрачности для каждого пикселя. Оно может читать и записывать файлы GIF, PPM/PGM и (в Tk 8.6 и новее) PNG, читать файлы SVG (в Tk 9.0 и новее) и отображаться в виджетах. Наследуется отImage.Параметры конфигурации включают data (содержимое изображения в виде строки), file (имя файла, из которого считывается содержимое), format (имя обработчика формата файла), width и height (размер изображения, используемый при его поэтапном создании), gamma и palette.
-
blank() -
Очищает изображение, то есть удаляет все его данные, так что оно отображается прозрачным и сквозь него виден фон окна, в котором оно отображается.
-
cget(option) -
Возвращает текущее значение параметра конфигурации option.
-
copy(*, from_coords=None, zoom=None, subsample=None) -
Возвращает новый объект
PhotoImage, содержащий копию этого изображения.from_coords задаёт прямоугольную область исходного изображения для копирования. Это должен быть кортеж или список из 1–4 целых чисел
(x1, y1, x2, y2).(x1, y1)и(x2, y2)задают противоположные углы прямоугольника по диагонали. Если x2 и y2 не указаны, по умолчанию используются координаты нижнего правого угла исходного изображения. Копируются пиксели, расположенные на левой и верхней границах прямоугольника, но не на нижней и правой. Если from_coords не задан, копируется всё исходное изображение.Если заданы zoom или subsample, изображение преобразуется так же, как в методах
zoom()илиsubsample(). Значение должно быть одним целым числом или парой целых чисел.Изменено в версии 3.13: Добавлены параметры from_coords, zoom и subsample.
-
copy_replace(sourceImage, *, from_coords=None, to=None, shrink=False, zoom=None, subsample=None, compositingrule=None) -
Копирует область из sourceImage (который должен быть объектом
PhotoImage) в это изображение, при необходимости увеличивая или уменьшая пиксели. Если параметры не заданы, в это изображение копируется всё содержимое sourceImage, начиная с координат(0, 0).from_coords задаёт прямоугольную область исходного изображения для копирования, как и в методе
copy().to задаёт прямоугольную область целевого изображения, которая будет затронута. Это должен быть кортеж или список из 1–4 целых чисел
(x1, y1, x2, y2). Если x2 и y2 не указаны, по умолчанию используются координаты(x1, y1)плюс размер исходной области (после уменьшения или увеличения, если они заданы). Если x2 и y2 указаны, исходная область при необходимости повторяется плиткой, чтобы заполнить целевую область.Если shrink имеет значение true, размер целевого изображения при необходимости уменьшается так, чтобы область, в которую выполняется копирование, находилась в его нижнем правом углу.
Если заданы zoom или subsample, изображение преобразуется так же, как в методах
zoom()илиsubsample(). Значение должно быть одним целым числом или парой целых чисел.compositingrule задаёт способ объединения прозрачных пикселей исходного изображения с целевым изображением. При значении
'overlay'(по умолчанию) прежнее содержимое целевого изображения остаётся видимым, как если бы исходное изображение было напечатано на прозрачной плёнке и помещено поверх целевого. При значении'set'прежнее содержимое целевого изображения отбрасывается, и исходное изображение используется без изменений.Добавлено в версии 3.13.
-
data(format=None, *, from_coords=None, background=None, grayscale=False) -
Возвращает данные изображения.
format задаёт имя обработчика формата файла изображения. Если он не указан, данные возвращаются в виде кортежа строк (по одному элементу на строку изображения), содержащих разделённые пробелами цвета (по одному элементу на пиксель/столбец) в формате
#RRGGBB.from_coords задаёт прямоугольную область изображения, которую нужно вернуть. Это должен быть кортеж или список из 1–4 целых чисел
(x1, y1, x2, y2). Если заданы только x1 и y1, область простирается от(x1, y1)до нижнего правого угла изображения. Если указаны все четыре координаты, они задают противоположные углы области по диагонали;(x1, y1)включается, а(x2, y2)исключается. Если from_coords не задан, возвращается всё изображение.Если задан background, данные не содержат сведений о прозрачности; цвет всех прозрачных пикселей заменяется указанным цветом.
Если grayscale имеет значение true, данные не содержат сведений о цвете; все данные пикселей преобразуются в оттенки серого.
Добавлено в версии 3.13.
-
get(x, y) -
Возвращает цвет пикселя с координатами (x, y) в виде кортежа
(r, g, b)из трёх целых чисел от 0 до 255, представляющих соответственно красную, зелёную и синюю составляющие.
-
put(data, to=None) -
Задаёт цвета пикселям изображения. Цвета передаются в data, который должен быть строкой или вложенной последовательностью горизонтальных строк цветов пикселей (например,
"{red green} {blue yellow}").to задаёт координаты области изображения, в которую копируются данные. Это должен быть кортеж или список из 2 или 4 целых чисел
(x1, y1)или(x1, y1, x2, y2), задающих верхний левый угол и, при необходимости, нижний правый угол области. По умолчанию используется позиция(0, 0).
-
read(filename, format=None, *, from_coords=None, to=None, shrink=False) -
Считывает данные изображения из файла с именем filename в изображение.
format задаёт формат данных изображения в файле.
from_coords задаёт прямоугольную область данных файла изображения, которую нужно скопировать в целевое изображение. Это должен быть кортеж или список из 1–4 целых чисел
(x1, y1, x2, y2). Если заданы только x1 и y1, область простирается от(x1, y1)до нижнего правого угла изображения в файле. Если указаны все четыре координаты, они задают противоположные углы области по диагонали. Если from_coords не задан, считывается всё изображение из файла.to задаёт координаты верхнего левого угла области изображения, в которую считываются данные. По умолчанию используется
(0, 0).Если shrink имеет значение true, размер изображения при необходимости уменьшается так, чтобы область, в которую считываются данные из файла, находилась в его нижнем правом углу.
Добавлено в версии 3.13.
-
subsample(x, y='', *, from_coords=None) -
Возвращает новый объект
PhotoImageна основе этого изображения, используя каждый x-й пиксель по оси X и каждый y-й пиксель по оси Y. Если y не задан, по умолчанию используется значение x.from_coords задаёт прямоугольную область исходного изображения для копирования, как и в методе
copy().Изменено в версии 3.13: Добавлен параметр from_coords.
-
transparency_get(x, y) -
Возвращает
True, если пиксель с координатами (x, y) полностью прозрачен, иFalseв противном случае.Добавлено в версии 3.8.
-
transparency_set(x, y, boolean) -
Делает пиксель с координатами (x, y) полностью прозрачным, если boolean имеет значение true, и полностью непрозрачным в противном случае.
Добавлено в версии 3.8.
-
write(filename, format=None, from_coords=None, *, background=None, grayscale=False) -
Записывает данные изображения в файл с именем filename.
format задаёт имя обработчика формата файла изображения. Если он не указан, формат определяется по расширению файла.
from_coords задаёт прямоугольную область изображения для записи. Это должен быть кортеж или список из 1–4 целых чисел
(x1, y1, x2, y2). Если заданы только x1 и y1, область простирается от(x1, y1)до нижнего правого угла изображения. Если указаны все четыре координаты, они задают противоположные углы области по диагонали. Если from_coords не задан, записывается всё изображение.Если задан background, данные не содержат сведений о прозрачности; цвет всех прозрачных пикселей заменяется указанным цветом.
Если grayscale имеет значение true, данные не содержат сведений о цвете; все данные пикселей преобразуются в оттенки серого.
Изменено в версии 3.13: Добавлены параметры background и grayscale.
-
zoom(x, y='', *, from_coords=None) -
Возвращает новый объект
PhotoImage, в котором это изображение увеличено в x раз по оси X и в y раз по оси Y. Если y не задан, по умолчанию используется значение x.from_coords задаёт прямоугольную область исходного изображения для копирования, как и в методе
copy().Изменено в версии 3.13: Добавлен параметр from_coords.
-
-
class tkinter.BitmapImage(name=None, cnf={}, master=None, **kw) -
Двухцветное изображение (тип изображения Tk
bitmap), созданное на основе растрового изображения X11. Каждый пиксель отображается цветом переднего плана, цветом фона или не отображается вовсе (создавая эффект прозрачности). Наследуется отImage.Параметры конфигурации: data или file (исходное растровое изображение в виде строки в формате растрового изображения X11 либо имя файла в этом формате), maskdata или maskfile (растровая маска в том же формате), а также foreground и background (два цвета). В тех местах, где значение маски равно нулю, изображение ничего не отображает; в остальных местах пиксели, равные единице в исходном изображении, отображаются цветом переднего плана, а пиксели, равные нулю, — цветом фона. Если для background задана пустая строка, пиксели фона прозрачны.
У
BitmapImageнет собственных методов, кроме унаследованных отImage.
Другие классы
-
class tkinter.Event -
Контейнер для атрибутов события, передаваемого обратному вызову, привязанному с помощью
Misc.bind(). ЭкземплярEventимеет следующие атрибуты, каждый из которых соответствует полю базового события Tk; в зависимости от типа события некоторым атрибутам может быть присвоена строка'??', указывающая на то, что они не имеют значения. См. раздел Привязки и события.-
serial -
Порядковый номер события.
-
num -
Кнопка мыши, которую нажали или отпустили (для событий кнопок).
-
focus -
Имеет ли окно фокус (для событий
EnterиLeave).
-
height -
width -
Новые высота и ширина окна (для событий
ConfigureиExpose).
-
keycode -
Код клавиши, которую нажали или отпустили.
-
state -
Состояние события в виде числа (для большинства событий) или строки (для событий
Visibility).
-
time -
Метка времени события в миллисекундах.
-
x -
y -
Положение указателя относительно виджета в пикселях.
-
x_root -
y_root -
Положение указателя относительно верхнего левого угла экрана в пикселях.
-
char -
Введённый символ в виде строки (для событий клавиш).
-
send_event -
True, если событие было отправлено другим приложением.
-
keysym -
Символическое имя клавиши, которую нажали или отпустили.
-
keysym_num -
Числовое значение
keysym.
-
type -
EventTypeсобытия.
-
widget -
Виджет, в котором произошло событие.
-
delta -
Величина поворота колёсика мыши (для событий
MouseWheel).
-
-
class tkinter.EventType(*values) -
Перечисление
enum.StrEnumтипов событий Tk, используемое в качестве значенияEvent.type. Среди его элементов естьKeyPress,KeyRelease,ButtonPress,ButtonRelease,Motion,Enter,Leave,FocusIn,FocusOut,Configure,Map,Unmap,Expose,DestroyиMouseWheel.Добавлено в версии 3.6.
-
class tkinter.CallWrapper(func, subst, widget) -
Внутренняя вспомогательная обёртка, которая позволяет вызывать обратный вызов Python из Tcl. func — функция Python, subst — необязательная функция предварительной обработки аргументов Tcl, а widget — виджет, используемый для сообщения об ошибках. Экземпляры создаются автоматически методом
Misc.register(); этот класс обычно не используется напрямую.
Функции уровня модуля
-
tkinter.Tcl(screenName=None, baseName=None, className='Tk', useTk=False) -
Функция
Tcl()— это фабричная функция, создающая объект, похожий на объект, создаваемый классомTk, но без инициализации подсистемы Tk. Чаще всего она полезна при управлении интерпретатором Tcl в среде, где не требуется создавать лишние окна верхнего уровня или это невозможно (например, в системах Unix/Linux без X-сервера). Для объекта, созданного объектомTcl(), можно создать окно Toplevel (и инициализировать подсистему Tk), вызвав его методloadtk().
-
tkinter.NoDefaultRoot() -
Запрещает создание неявного корневого окна по умолчанию. После этого
tkinterбольше не создаёт автоматически общий корень по умолчанию, а операции, которым он необходим, — например, создание виджета без явно заданного master, — вызывают исключениеRuntimeError. Вызывайте эту функцию в начале работы крупных приложений, чтобы явно задавать корневое окно.
-
tkinter.mainloop(n=0) -
Запускает главный цикл обработки событий Tk для корневого окна по умолчанию до уничтожения всех окон. Эквивалентно вызову
Misc.mainloop()для корневого окна по умолчанию.
-
tkinter.getboolean(s) -
Преобразует логическую строку Tcl s (одну из
'1','true','yes','on'и подобных им либо их ложных эквивалентов) в значение Python типаbool. При недопустимом значении вызывает исключениеTclError.
-
tkinter.getdouble(s) -
Преобразует s в число с плавающей точкой. Это встроенная функция
float.
-
tkinter.getint(s) -
Преобразует s в целое число. Это встроенная функция
int.
-
tkinter.image_names() -
Возвращает имена всех существующих изображений в интерпретаторе корневого окна по умолчанию.
-
tkinter.image_types() -
Возвращает доступные типы изображений (например,
'photo'и'bitmap') в интерпретаторе корневого окна по умолчанию.
Обработчики файлов
Tk позволяет регистрировать и отменять регистрацию функции обратного вызова, которая вызывается из главного цикла Tk, когда для файлового дескриптора становится возможен ввод-вывод. Для каждого файлового дескриптора можно зарегистрировать только один обработчик. Пример кода:
import tkinter widget = tkinter.Tk() mask = tkinter.READABLE | tkinter.WRITABLE widget.tk.createfilehandler(file, mask, callback) ... widget.tk.deletefilehandler(file)
Эта возможность недоступна в Windows.
Поскольку неизвестно, сколько байтов доступно для чтения, возможно, не стоит использовать методы BufferedIOBase или TextIOBase read() и readline(), поскольку они будут настаивать на чтении заранее заданного количества байтов. Для сокетов подойдут методы recv() или recvfrom(); для остальных файлов используйте чтение без буферизации или os.read(file.fileno(), maxbytecount).
-
Widget.tk.createfilehandler(file, mask, func) -
Регистрирует функцию обратного вызова обработчика файла func. Аргумент file может быть объектом с методом
fileno()(например, объектом файла или сокета) либо целочисленным файловым дескриптором. Аргумент mask представляет собой побитовое ИЛИ любых трёх приведённых ниже констант. Функция обратного вызова вызывается следующим образом:callback(file, mask)
-
Widget.tk.deletefilehandler(file) -
Отменяет регистрацию обработчика файла.
-
tkinter.READABLE -
tkinter.WRITABLE -
tkinter.EXCEPTION -
Константы, используемые в аргументах mask.
Константы
Следующие символические константы доступны как в пространстве имён tkinter, так и в пространстве имён tkinter.constants.
-
tkinter.TRUE -
tkinter.YES -
tkinter.ON -
Истинные значения, равные целому числу
1.
-
tkinter.FALSE -
tkinter.NO -
tkinter.OFF -
Ложные значения, равные целому числу
0.
-
tkinter.N -
tkinter.S -
tkinter.E -
tkinter.W -
tkinter.NE -
tkinter.NW -
tkinter.SE -
tkinter.SW -
tkinter.NS -
tkinter.EW -
tkinter.NSEW -
tkinter.CENTER -
Стороны света (
'n','s','e','w', а также диагонали и края) иCENTER('center'). Используются как значения параметров anchor и sticky, а также методами, напримерMisc.grid_anchor().
-
tkinter.LEFT -
tkinter.RIGHT -
tkinter.TOP -
tkinter.BOTTOM -
Стороны для параметра side менеджера компоновки pack (см.
Pack.pack_configure()).
-
tkinter.X -
tkinter.Y -
tkinter.BOTH -
tkinter.NONE -
Значения параметра fill менеджера компоновки pack:
'x','y','both'или'none'.
-
tkinter.RAISED -
tkinter.SUNKEN -
tkinter.FLAT -
tkinter.RIDGE -
tkinter.GROOVE -
tkinter.SOLID -
Значения параметра relief, управляющего трёхмерной рамкой виджета.
-
tkinter.HORIZONTAL -
tkinter.VERTICAL -
Значения параметра orient таких виджетов, как
Scale,ScrollbarиPanedWindow.
-
tkinter.CHAR -
tkinter.WORD -
Значения параметра wrap виджета
Text, определяющие перенос строк по границам символов или слов.
-
tkinter.BASELINE -
Значение выравнивания текста
'baseline'.
-
tkinter.INSIDE -
tkinter.OUTSIDE -
Значения параметра bordermode менеджера компоновки place (см.
Place.place_configure()).
-
tkinter.INSERT -
tkinter.CURRENT -
tkinter.END -
tkinter.ANCHOR -
tkinter.SEL -
tkinter.SEL_FIRST -
tkinter.SEL_LAST -
Символические индексы, используемые виджетами
Text,Entry,ListboxиCanvas, например'insert'(курсор вставки),'current','end','anchor'и границы выделения ('sel.first'и'sel.last').
-
tkinter.ALL -
Специальный тег
'all', соответствующий каждому элементу виджетаCanvasили каждому символу виджетаText(например,canvas.delete(ALL)).
-
tkinter.NORMAL -
tkinter.DISABLED -
tkinter.ACTIVE -
tkinter.HIDDEN -
Значения параметра state различных виджетов и элементов.
-
tkinter.CASCADE -
tkinter.CHECKBUTTON -
tkinter.COMMAND -
tkinter.RADIOBUTTON -
tkinter.SEPARATOR -
Типы пунктов меню, используемые в качестве аргумента itemType методов
Menu.add()иMenu.insert().
-
tkinter.SINGLE -
tkinter.BROWSE -
tkinter.MULTIPLE -
tkinter.EXTENDED -
Значения параметра selectmode виджета
Listbox.
-
tkinter.PIESLICE -
tkinter.CHORD -
tkinter.ARC -
Значения параметра style элементов дуги виджета
Canvas.
-
tkinter.BUTT -
tkinter.PROJECTING -
tkinter.ROUND -
tkinter.BEVEL -
tkinter.MITER -
Значения параметров capstyle (
'butt','projecting','round') и joinstyle ('round','bevel','miter') элементов-линий виджетаCanvas.
-
tkinter.FIRST -
tkinter.LAST -
Значения параметра arrow элементов-линий виджета
Canvas, указывающие, на каких концах должны быть стрелки.
-
tkinter.MOVETO -
tkinter.SCROLL -
Первый аргумент, передаваемый виджетом
ScrollbarметодуXView.xview()илиYView.yview()прокручиваемого виджета.
-
tkinter.UNITS -
tkinter.PAGES -
Значения аргумента what методов
XView.xview_scroll()иYView.yview_scroll().
-
tkinter.UNDERLINE -
tkinter.NUMERIC -
tkinter.DOTBOX -
Другие значения параметров:
'underline','numeric'и'dotbox'.
© 2001 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/3.14/library/tkinter.html