tkinter.font.md
1> **Источник:** https://python-all.ru/3.16/library/tkinter.font.html2>3> «Документация Python на русском» – неофициальный перевод официальной документации Python: версии от 2.6 до 3.16, полнотекстовый поиск, английский оригинал рядом с переводом. Эта Markdown-версия страницы предназначена для работы с LLM: вставьте её в ChatGPT, Claude или Cursor.45---67# `tkinter.font` – обёртка шрифтов Tkinter89**Исходный код:** [Lib/tkinter/font.py](https://python-all.ru/src/main/Lib/tkinter/font.py)1011---1213Модуль `tkinter.font` предоставляет класс [`Font`](https://python-all.ru/3.16/library/tkinter.font.html#tkinter.font.Font) для создания и использования именованных шрифтов.1415Различные насыщенности и наклоны шрифта:1617#### `tkinter.font.NORMAL`1819#### `tkinter.font.BOLD`2021#### `tkinter.font.ITALIC`2223#### `tkinter.font.ROMAN`2425#### `class tkinter.font.Font(root=None, font=None, name=None, exists=False, **options)`2627Класс `Font` представляет шрифт, используемый виджетами Tk. Он либо создаёт новый *именованный шрифт*, либо ссылается на существующий. Именованный шрифт – это способ Tk идентифицировать шрифт как единый объект, на который можно ссылаться по имени и перенастраивать на месте, вместо повторного указания его атрибутов при каждом использовании.2829Если *exists* равен false (по умолчанию), создаётся новый именованный шрифт. Его атрибуты берутся из описания шрифта *font*, если оно задано, и переопределяются ключевыми аргументами *options*. Новый шрифт называется *name*, или же генерируется уникальное имя, если *name* опущен.3031Если *exists* равен true, используется существующий шрифт, а не создаётся новый. Если задан *name*, это имя шрифта, который перенастраивается с помощью *font* и *options*, если хотя бы один из них задан. Если *name* опущен, описание шрифта *font* используется как есть, без создания именованного шрифта, так что он используется без потери точности методами [`actual()`](https://python-all.ru/3.16/library/tkinter.font.html#tkinter.font.Font.actual), [`measure()`](https://python-all.ru/3.16/library/tkinter.font.html#tkinter.font.Font.measure) и [`metrics()`](https://python-all.ru/3.16/library/tkinter.font.html#tkinter.font.Font.metrics). В этом случае ключевые аргументы не принимаются, и атрибут `name` является самим описанием, а не строкой.3233Описание шрифта *font* – это кортеж из названия семейства, размера и ноля или более стилей, или любая другая форма, принимаемая Tk, например имя именованного шрифта.3435Ключевые аргументы *options*:3637> *family*38>39> – семейство шрифта, например, Courier, Times40>41> *size*42>43> – размер шрифта44>45> Если46>47> *size*48>49> положителен, он интерпретируется как размер в пунктах.50>51> Если52>53> *size*54>55> – отрицательное число, его абсолютное значение считается56>57> как размер в пикселях.58>59> *weight*60>61> – насыщенность шрифта (NORMAL, BOLD)62>63> *slant*64>65> – наклон (ROMAN, ITALIC)66>67> *underline*68>69> – подчёркивание шрифта (0 – нет, 1 – подчёркивание)70>71> *overstrike*72>73> – зачёркивание шрифта (0 – нет, 1 – зачёркивание)7475Изменено в версии 3.10: Теперь два шрифта считаются равными (`==`) только если оба являются экземплярами `Font` с одним и тем же именем, принадлежащими одному интерпретатору Tcl.7677Изменено в версии 3.16.0a0 (не выпущена): Теперь описание шрифта можно использовать без создания нового именованного шрифта, и ключевые аргументы переопределяют атрибуты указанного *font*.7879#### `actual(option=None, displayof=None)`8081Возвращает фактические атрибуты шрифта, которые могут отличаться от запрошенных из-за ограничений платформы. Без указания *option* возвращает словарь всех атрибутов; если указан *option*, возвращает значение этого единственного атрибута.8283#### `cget(option)`8485Извлекает атрибут шрифта.8687> **Примечание**88>89> `cget()` и [`configure()`](https://python-all.ru/3.16/library/tkinter.font.html#tkinter.font.Font.configure) работают с именованным шрифтом и вызывают [`TclError`](https://python-all.ru/3.16/library/tkinter.html#tkinter.TclError) для описания шрифта, используемого как есть. Используйте [`actual()`](https://python-all.ru/3.16/library/tkinter.font.html#tkinter.font.Font.actual) для запроса атрибутов последнего.9091#### `configure(**options)`9293Изменяет один или несколько атрибутов шрифта. Без аргументов возвращает словарь текущих атрибутов.9495[`config()`](https://python-all.ru/3.16/library/tkinter.font.html#tkinter.font.Font.config) является псевдонимом `configure()`.9697#### `copy()`9899Возвращает новый экземпляр текущего шрифта.100101#### `measure(text, displayof=None)`102103Возвращает количество пикселей, которое текст займёт на указанном дисплее при форматировании текущим шрифтом. Если дисплей не указан, используется главное окно приложения.104105#### `metrics(*options, **kw)`106107Возвращает данные о шрифте. Без параметров возвращает словарь, сопоставляющий каждому названию метрики её целочисленное значение; если указано одно название метрики, возвращает значение этой метрики как целое число. Параметры включают:108109***ascent* – расстояние от базовой линии до самой высокой точки, которую**110111может занимать символ шрифта.112113***descent* – расстояние от базовой линии до самой низкой точки, которую**114115может занимать символ шрифта.116117***linespace* – минимальный вертикальный интервал, необходимый между любыми двумя**118119символами шрифта, чтобы гарантировать отсутствие вертикального наложения строк.120121*fixed* – 1, если шрифт моноширинный, иначе 0122123#### `tkinter.font.families(root=None, displayof=None)`124125Возвращает кортеж названий доступных семейств шрифтов.126127#### `tkinter.font.names(root=None)`128129Возвращает кортеж названий всех определённых шрифтов.130131#### `tkinter.font.nametofont(name, root=None)`132133Возвращает [`Font`](https://python-all.ru/3.16/library/tkinter.font.html#tkinter.font.Font) представление существующего именованного шрифта *name*. *root* – это виджет, интерпретатору Tcl которого принадлежит шрифт; если опущен, используется главное окно по умолчанию.134135Изменено в версии 3.10: Добавлен параметр *root*.136