Spec-Zone.ru › Tcl/Tk

Шрифт

ИМЯ
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
ОПИСАНИЯ ШРИФТОВ
    [1] fontname
    [2] systemfont
    [3] family ?size? ?style? ?style ...?
    [4] Имена шрифтов X (XLFD)
    [5] option value ?option value ...?
МЕТРИКИ ШРИФТОВ
-ascent
-descent
-linespace
-fixed
НАСТРОЙКИ ШРИФТА
-family name
-size size
-weight weight
-slant slant
-underline boolean
-overstrike boolean
СТАНДАРТНЫЕ ШРИФТЫ
TkDefaultFont
TkTextFont
TkFixedFont
TkMenuFont
TkHeadingFont
TkCaptionFont
TkSmallCaptionFont
TkIconFont
TkTooltipFont
ПЛАТФОРМЕННО-СПЕЦИФИЧЕСКИЕ ШРИФТЫ
X Windows
MS Windows
Mac OS X
ПРИМЕР
СМОТРИТЕ ТАКЖЕ
КЛЮЧЕВЫЕ СЛОВА

Имя

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], как указано выше:
-family name
Имя семейства шрифтов (регистронезависимое). Tk гарантирует поддержку семейств шрифтов Courier (моноширинный «шрифт пишущей машинки»), Times (шрифт с засечками «газетный») и Helvetica (шрифт без засечек «европейский»). При использовании одного из перечисленных семейств шрифтов будет автоматически выбрано наиболее соответствующее системному семейство шрифтов. Имя name также может быть именем системного семейства шрифтов; в этом случае он будет работать как ожидается на одной платформе, но может не отображаться корректно на других платформах. Если семейство не указано или не распознано, будет выбран системный шрифт по умолчанию.
-size size
Желаемый размер шрифта. Если аргумент size — положительное число, оно интерпретируется как размер в пунктах. Если size — отрицательное число, его абсолютное значение интерпретируется как размер в пикселях. Если шрифт не может быть отображён в заданном размере, будет выбран близкий размер. Если size не указан или равен нулю, будет выбран системный размер по умолчанию.

Размеры обычно следует указывать в пунктах, чтобы приложение имело одинаковый масштаб на экране, даже при изменении разрешения экрана или переносе скриптов между платформами. Однако указание размеров в пикселях полезно в определённых ситуациях, например, когда текст должен выровняться относительно фиксированного растрового изображения. Сопоставление пунктов и пикселей устанавливается при запуске приложения на основе свойств установленного монитора, но его можно переопределить, вызвав команду масштабирования Tk.

-weight weight
Номинальная толщина символов в шрифте. Значение normal указывает шрифт нормальной толщины, а bold — жирный шрифт. Будет выбран ближайший доступный вес к указанному. Вес по умолчанию — normal.
-slant slant
Степень наклона символов в шрифте от вертикали. Допустимые значения для наклона — roman и italic. Шрифт roman — нормальный, прямой вид шрифта, а шрифт italic — наклонённый на некоторый угол от вертикали. Будет выбран ближайший доступный наклон к указанному. Наклон по умолчанию — roman.
-underline boolean
Значение — логический флаг, указывающий, должны ли символы в этом шрифте быть подчеркнуты. Значение по умолчанию для underline — false.
-overstrike boolean
Значение — логический флаг, указывающий, должна ли через символы в этом шрифте проводиться горизонтальная линия. Значение по умолчанию для overstrike — false.

Стандартные шрифты

Следующие именованные шрифты поддерживаются на всех системах и по умолчанию соответствуют значениям системных настроек.
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

Spec-Zone.ru

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