Шрифт
-
ИМЯ
- font — Создать и просмотреть шрифты.
- СИНТАКСИС
- ОПИСАНИЕ
-
font actual font ?-displayof window? ?option? ?--? ?char?
- font configure fontname ?option? ?value option value ...?
- font create ?fontname? ?option value ...?
- font delete fontname ?fontname ...?
- font families ?-displayof window?
- font measure font ?-displayof window? text
- font metrics font ?-displayof window? ?option?
- font names
- font configure fontname ?option? ?value option value ...?
- ОПИСАНИЯ ШРИФТОВ
-
[1] fontname
- [2] systemfont
- [3] family ?size? ?style? ?style ...?
- [4] Имена шрифтов X (XLFD)
- [5] option value ?option value ...?
- [2] systemfont
- МЕТРИКИ ШРИФТОВ
-
-ascent
- -descent
- -linespace
- -fixed
- -descent
- НАСТРОЙКИ ШРИФТА
- СТАНДАРТНЫЕ ШРИФТЫ
-
TkDefaultFont
- TkTextFont
- TkFixedFont
- TkMenuFont
- TkHeadingFont
- TkCaptionFont
- TkSmallCaptionFont
- TkIconFont
- TkTooltipFont
- TkTextFont
- ПЛАТФОРМЕННО-СПЕЦИФИЧЕСКИЕ ШРИФТЫ
-
X Windows
- MS Windows
- Mac OS X
- MS Windows
- ПРИМЕР
- СМОТРИТЕ ТАКЖЕ
- КЛЮЧЕВЫЕ СЛОВА
Имя
font — Создать и просмотреть шрифты.Синтаксис
font option ?arg arg ...?Описание
Команда font предоставляет несколько возможностей для работы со шрифтами, таких как определение именованных шрифтов и проверка фактических атрибутов шрифта. Команда имеет несколько различных форм, определяемых первым аргументом. В настоящее время поддерживаются следующие формы:- font actual font ?-displayof window? ?option? ?--? ?char?
- Возвращает информацию об актуальных атрибутах, полученных при использовании font на дисплее window; актуальные атрибуты могут отличаться от запрошенных из-за ограничений, зависящих от платформы, таких как доступность наборов шрифтов и размеров точек. font — это описание шрифта; см. ОПИСАНИЯ ШРИФТОВ ниже. Если аргумент window опущен, он по умолчанию устанавливается в основное окно. Если указан option, возвращается значение этого атрибута; если он опущен, возвращаемое значение — список всех атрибутов и их значений. См. ВАРИАНТЫ ШРИФТА ниже для списка возможных атрибутов. Если задан аргумент char, он должен быть одиночным символом. Возвращаемые атрибуты шрифта будут соответствовать конкретному шрифту, используемому для отображения этого символа, что будет отличаться от базового шрифта, если базовый шрифт не содержит заданный символ. Если char может быть тире, ему должно предшествовать --, чтобы отличить его от ошибочно написанного option.
- font configure fontname ?option? ?value option value ...?
- Запрос или изменение желаемых атрибутов для шрифта с именем fontname. Если option не указан, возвращается список, описывающий все параметры и их значения для fontname. Если один option указан без value, возвращается текущее значение этого атрибута. Если указаны одна или несколько пар option-value, команда изменяет указанный шрифт на заданные значения; в этом случае все виджеты, использующие этот шрифт, перерисуют себя с использованием новых атрибутов шрифта. См. ВАРИАНТЫ ШРИФТА ниже для списка возможных атрибутов.
Обратите внимание, что в Aqua/Mac OS X системные шрифты (см. ШРИФТЫ, ЗАВИСЯЩИЕ ОТ ПЛАТФОРМЫ ниже) могут не изменяться фактически, поскольку они реализованы системной темой. Чтобы добиться эффекта изменения, используйте font actual для получения их конфигурации и font create для создания копии шрифта, который можно изменить.
- font create ?fontname? ?option value ...?
- Создает новый шрифт с именем и возвращает его имя. fontname задает имя шрифта; если он опущен, Tk генерирует новое имя вида fontx, где x — целое число. Может быть любое количество пар option-value, которые задают желаемые атрибуты для нового шрифта с именем. См. ВАРИАНТЫ ШРИФТА ниже для списка возможных атрибутов.
- font delete fontname ?fontname ...?
- Удаляет указанные шрифты с именем. Если существуют виджеты, использующие указанный шрифт, шрифт с именем фактически не будет удален, пока не будут освобождены все экземпляры. Эти виджеты будут продолжать отображаться с последними известными значениями для шрифта с именем. Если удалённый шрифт с именем затем будет повторно создан с помощью другого вызова font create, виджеты будут использовать новый шрифт с именем и перерисуют себя с новыми атрибутами этого шрифта.
- font families ?-displayof window?
- Возвращаемое значение — список имён всех наборов шрифтов, существующих на дисплее window, без учёта регистра. Если аргумент window опущен, он по умолчанию устанавливается в основное окно.
- font measure font ?-displayof window? text
- Измеряет количество места, которое строка text займет в заданном font при отображении в window. font — это описание шрифта; см. ОПИСАНИЯ ШРИФТОВ ниже. Если аргумент window опущен, он по умолчанию устанавливается в основное окно. Возвращаемое значение — общая ширина в пикселях строки text, не включая дополнительные пиксели, используемые сильно преувеличенными символами, такими как заглавная буква "f". Если строка содержит символы перевода строки или табуляции, эти символы не расширяются и не обрабатываются особым образом при измерении строки.
- font metrics font ?-displayof window? ?option?
- Возвращает информацию о метриках (данных, специфичных для шрифта) для font при использовании на дисплее window. font — это описание шрифта; см. ОПИСАНИЯ ШРИФТОВ ниже. Если аргумент window опущен, он по умолчанию устанавливается в основное окно. Если указан option, возвращается значение этой метрики; если он опущен, возвращаемое значение — список всех метрик и их значений. См. МЕТРИКИ ШРИФТОВ ниже для списка возможных метрик.
- font names
- Возвращаемое значение — список всех именованных шрифтов, которые в настоящее время определены.
Описания шрифтов
Следующие форматы принимаются в качестве описания шрифта, где font указан в качестве аргумента выше; те же форматы также допускаются при указании параметра -font для виджетов.- [1] fontname
- Название именованного шрифта, созданного с помощью команды font create. Когда виджет использует именованный шрифт, гарантируется, что это никогда не вызовет ошибку, если именованный шрифт существует, независимо от потенциально недопустимого или бессмысленного набора атрибутов этого шрифта. Если именованный шрифт нельзя отобразить с точно указанными атрибутами, будет автоматически заменён на другой близкий шрифт.
- [2] systemfont
- Зависимое от платформы имя шрифта, интерпретируемое графическим сервером. Это также включает, под X, XLFD (см. [4]), для которого один символ «*» использовался для умолчания более чем одного поля в середине имени. Список системных шрифтов см. в разделе ПЛАТФОРМНО-ЗАВИСИМЫЕ ШРИФТЫ.
- [3] family ?size? ?style? ?style ...?
- Правильно сформированный список, первый элемент которого — желаемая семья шрифтов, а необязательный второй элемент — желаемый размер. Интерпретация атрибута size подчиняется тем же правилам, что и для -size в разделе НАСТРОЙКИ ШРИФТА ниже. Любые дополнительные необязательные аргументы после размера являются стилями шрифта. Возможные значения аргументов style следующие:
normal
bold
roman
italic
underline
overstrike
- [4] Имена шрифтов X (XLFD)
- Центрированное на Unix имя шрифта в формате -foundry-family-weight-slant-setwidth-addstyle-pixel-point-resx-resy-spacing-width-charset-encoding. Символ «*» может использоваться для пропуска отдельных полей, которые пользователю не важны. Должен быть ровно один символ «*» для каждого пропущенного поля, за исключением того, что «*» в конце XLFD пропускает все оставшиеся поля; самый короткий допустимый XLFD — просто «*», означающий все поля по умолчанию. Любые пропущенные поля получают значения по умолчанию. Для совместимости XLFD всегда выбирает шрифт указанного размера в пикселях (а не в пунктах); хотя эта интерпретация не совсем верна, все существующие приложения, использующие XLFD, предполагали, что один «пункт» фактически равен одному пикселю, и отображали бы его неправильно (обычно больше), если бы использовался шрифт правильного размера.
- [5] значение параметра ?значение параметра ...?
- Правильно сформированный список пар параметр-значение, определяющих желаемые атрибуты шрифта, в том же формате, что и при определении именованного шрифта; см. раздел НАСТРОЙКИ ШРИФТА ниже.
При использовании описания шрифта font система пытается разобрать описание по каждому из вышеперечисленных пяти правил в указанном порядке. Случаи [1] и [2] должны соответствовать имени существующего именованного шрифта или системного шрифта. Случаи [3], [4] и [5] принимаются на всех платформах, и будет использован ближайший доступный шрифт. В некоторых ситуациях может быть невозможно найти ближайший шрифт (например, семья шрифтов была мусорным значением); в этом случае выбирается какой-то системный шрифт по умолчанию. Если описание шрифта не соответствует ни одному из вышеперечисленных шаблонов, генерируется ошибка.
Метрики шрифта
Следующие параметры используются командой font metrics для запроса данных, специфичных для шрифта, определяемых при создании шрифта. Эти свойства предназначены для всего шрифта в целом, а не для отдельных символов, нарисованных этим шрифтом. В следующих определениях «базовая линия» шрифта — это горизонтальная линия, где выравниваются нижние части большинства букв; некоторые буквы, такие как строчная «g», расположены ниже базовой линии.- -ascent
- Значение в пикселях, на которое самая высокая буква возвышается над базовой линией шрифта, плюс любое дополнительное пустое пространство, добавленное дизайнером шрифта.
- -descent
- Наибольшее значение в пикселях, на которое любая буква опускается ниже базовой линии шрифта, плюс любое дополнительное пустое пространство, добавленное дизайнером шрифта.
- -linespace
- Возвращает расстояние в пикселях между двумя строками текста, использующими один и тот же шрифт, необходимое для того, чтобы ни один из символов в одной строке не перекрывал символы в другой строке. Обычно это сумма восхождения над базовой линией плюс спуск ниже базовой линии.
- -fixed
- Возвращает логическое значение «1», если это шрифт с фиксированной шириной, где каждый обычный символ имеет ту же ширину, что и все остальные символы, или «0», если это пропорциональный шрифт, где отдельные символы имеют разные ширины. Ширины управляющих символов, символов табуляции и других непечатаемых символов не учитываются при вычислении этого значения.
Параметры шрифта
Следующие параметры поддерживаются на всех платформах и используются при построении именованного шрифта или при указании шрифта с использованием стиля [5], как указано выше:Стандартные шрифты
Следующие именованные шрифты поддерживаются на всех системах и по умолчанию соответствуют значениям системных настроек.- TkDefaultFont
- Этот шрифт является по умолчанию для всех элементов графического интерфейса, если не указано иное.
- TkTextFont
- Этот шрифт следует использовать для пользовательского текста в виджетах ввода, списках и т. д.
- TkFixedFont
- Этот шрифт — стандартный шрифт с фиксированной шириной.
- TkMenuFont
- Этот шрифт используется для пунктов меню.
- TkHeadingFont
- Этот шрифт следует использовать для заголовков столбцов в списках и таблицах.
- TkCaptionFont
- Этот шрифт следует использовать для заголовков окон и диалоговых окон.
- TkSmallCaptionFont
- Этот шрифт следует использовать для заголовков вложенных окон или диалоговых окон инструментов.
- TkIconFont
- Этот шрифт следует использовать для подписей значков.
- TkTooltipFont
- Этот шрифт следует использовать для всплывающих окон подсказок (временных информационных окон).
Не рекомендуется изменять эти шрифты, так как Tk может их изменять в ответ на системные изменения. Вместо этого создайте копию шрифта и внесите в неё изменения.
Системные шрифты
Следующие системные шрифты поддерживаются:- X Windows
- Доступны все допустимые имена шрифтов X, включая те, которые перечислены в xlsfonts(1).
- MS Windows
- Поддерживаются следующие шрифты, и они сопоставляются с системными настройками пользователя.
system
ansi
device
systemfixed
ansifixed
oemfixed
- Mac OS X
- Поддерживаются следующие шрифты, и они сопоставляются с системными настройками пользователя.
system
application
menu
Кроме того, следующие именованные шрифты обеспечивают доступ к шрифтам темы Aqua:
systemSystemFont
systemEmphasizedSystemFont
systemSmallSystemFont
systemSmallEmphasizedSystemFont
systemApplicationFont
systemLabelFont
systemViewsFont
systemMenuTitleFont
systemMenuItemFont
systemMenuItemMarkFont
systemMenuItemCmdKeyFont
systemWindowTitleFont
systemPushButtonFont
systemUtilityWindowTitleFont
systemAlertHeaderFont
systemToolbarFont
systemMiniSystemFont
systemDetailSystemFont
systemDetailEmphasizedSystemFont
Пример
Заполните текстовый виджет множеством демонстраций шрифтов, по одному для каждого семейства шрифтов, установленных в вашей системе:pack [text .t -wrap none] -fill both -expand 1
set count 0
set tabwidth 0
foreach family [lsort -dictionary [font families]] {
.t tag configure f[incr count] -font [list $family 10]
.t insert end ${family}:\t {} \
"This is a simple sampler\n" f$count
set w [font measure [.t cget -font] ${family}:]
if {$w+5 > $tabwidth} {
set tabwidth [expr {$w+5}]
.t configure -tabs $tabwidth
}
} См. также
настройки
Licensed under Tcl/Tk terms
https://www.tcl.tk/man/tcl/TkCmd/font.htm
Licensed under Tcl/Tk terms
https://www.tcl.tk/man/tcl/TkCmd/font.htm