Spec-Zone.ru › Tcl/Tk

fontchooser

ИМЯ
fontchooser — диалог выбора шрифта
СИНТАКСИС
ОПИСАНИЕ
tk fontchooser configure ?-option value -option value ...?
tk fontchooser show
tk fontchooser hide
НАСТРОЙКИ
-parent
-title
-font
-command
-visible
ВИРТУАЛЬНЫЕ СОБЫТИЯ
<<TkFontchooserVisibility>>
<<TkFontchooserFontChanged>>
ПРИМЕЧАНИЯ
ПРИМЕР
СМОТРИТЕ ТАКЖЕ
КЛЮЧЕВЫЕ СЛОВА

Имя

fontchooser — диалог выбора шрифта

Синтаксис

tk fontchooser configure ?-option value -option value ...?
tk fontchooser show
tk fontchooser hide

Описание

Команда tk fontchooser управляет диалоговым окном выбора шрифтов Tk. Она использует диалоговое окно выбора шрифтов платформы по умолчанию, если оно доступно, или диалоговое окно, реализованное в Tcl в противном случае.

В отличие от большинства других команд диалоговых окон Tk, tk fontchooser не возвращает немедленного результата, так как на некоторых платформах (Mac OS X) стандартное диалоговое окно шрифтов является безадресным, в то время как на других (Windows) — модальным. Чтобы учесть это различие, вся пользовательская работа с диалоговым окном будет передана вызывающей стороне через обратные вызовы или виртуальные события.

Команда tk fontchooser может иметь один из следующих форматов:

tk fontchooser configure ?-option value -option value ...?
Устанавливает или запрашивает один или несколько параметров конфигурации ниже (аналогично настройке виджетов Tk).
tk fontchooser show
Показывает диалоговое окно выбора шрифта. В зависимости от платформы может вернуть результат немедленно или только после закрытия диалогового окна.
tk fontchooser hide
Скрывает диалоговое окно выбора шрифта, если оно открыто, и заставляет любую ожидающую команду tk fontchooser show вернуть результат.

Параметры конфигурации

-parent
Указывает/возвращает логическое родительское окно диалогового окна выбора шрифта (аналогично параметру -parent для других диалогов). Диалоговое окно выбора шрифта скрывается, если оно открыто при уничтожении родительского окна.
-title
Указывает/возвращает заголовок диалогового окна. Не имеет эффекта на платформах, где диалоговое окно выбора шрифтов не поддерживает заголовки.
-font
Указывает/возвращает шрифт, который в данный момент выбран в диалоговом окне, если оно открыто, или который будет выбран по умолчанию при открытии диалогового окна (если поддерживается платформой). Может быть установлено в пустую строку, чтобы указать, что ни один шрифт не должен быть выбран. Шрифты могут быть заданы в любом формате, указанном в разделе «Описание шрифтов» в справочной странице font.
-command
Указывает/возвращает префикс команды, которая будет вызвана при выборе шрифта пользователем. Префикс команды вычисляется на глобальном уровне после добавления спецификации выбранного шрифта. На платформах, где диалоговое окно выбора шрифта предоставляет пользователю управление дополнительными атрибутами шрифта (такими как цвет), дополнительные пары ключ/значение могут быть добавлены перед вычислением. Может быть установлено в пустую строку, чтобы указать, что никакой обратный вызов не должен быть вызван. Шрифты задаются списком формы [3] из раздела «Описание шрифтов» в справке font (то есть список вида {family size style ?style ...?}).
-visible
Только для чтения параметр, который возвращает булево значение, указывающее, открыто ли диалоговое окно выбора шрифта в данный момент. Попытка установить этот параметр приведет к ошибке.

Виртуальные события

<<TkFontchooserVisibility>>
Отправляется в родительское окно диалогового окна при изменении видимости диалогового окна выбора шрифта, как в результате действий пользователя (например, закрытия диалогового окна кнопкой «ОК»/«Отмена» или закрывающего крестика), так и в результате вызова команд tk fontchooser show/hide. Скрипты связывания могут определить текущую видимость диалогового окна, запросив параметр конфигурации -visible.
<<TkFontchooserFontChanged>>
Отправляется в родительское окно диалогового окна всякий раз, когда диалоговое окно выбора шрифта открыто, и выбранный шрифт изменяется, как в результате действий пользователя, так и в результате установки параметра конфигурации -font. Скрипты связывания могут определить текущий выбранный шрифт, запросив параметр конфигурации -font.

Примечания

Вызывающие стороны не должны ожидать результата от tk fontchooser show и не должны предполагать, что диалоговое окно было закрыто или закрыто, когда команда возвращается. Вся пользовательская работа с диалоговым окном передается вызывающей стороне через обратный вызов -command и виртуальные события <<TkFontchooser*>>. Зависит от реализации, какие именно действия пользователя приведут к вызову обратного вызова или отправке виртуальных событий. Там, где в диалоговом окне присутствует кнопка «Применить» или «ОК», эта кнопка вызовет обратный вызов -command и виртуальное событие <<TkFontchooserFontChanged>>. На некоторых реализациях другие действия пользователя также могут иметь этот эффект; например, на Mac OS X стандартное диалоговое окно выбора шрифтов немедленно отражает все выбранные пользователем настройки вызывающей стороне.

При наличии нескольких виджетов, которые должны быть затронуты диалоговым окном выбора шрифта, необходимо позаботиться о правильной обработке изменений фокуса: выбранный в диалоговом окне шрифт всегда должен совпадать с текущим шрифтом виджета с фокусом, и обратный вызов -command должен действовать только на виджете с фокусом. Рекомендуемая практика состоит в том, чтобы установить параметры конфигурации диалогового окна шрифтов -font и -command в обработчиках <FocusIn> каждого виджета (и при необходимости сбросить их — то есть установить в пустую строку — в соответствующих обработчиках <FocusOut>). Это особенно важно для разработчиков библиотечного кода, использующего диалоговое окно выбора шрифтов, чтобы избежать конфликтов с кодом приложения, который также может захотеть использовать диалоговое окно.

Поскольку диалоговое окно выбора шрифта является прикладным глобальным, при наличии нескольких интерпретаторов, вызывающих tk fontchooser, только обратный вызов -command, установленный интерпретатором, который в последний раз вызвал tk fontchooser configure или tk fontchooser show, будет вызван в ответ на действия пользователя, и только -parent, установленный этим интерпретатором, получит виртуальные события <<TkFontchooser*>>.

Реализация диалогового окна шрифтов может хранить (и возвращать) только данные font actual в качестве значения параметра конфигурации -font. Это может быть проблемой, когда -font установлен на имя шрифта, если этот шрифт впоследствии изменяется, параметр конфигурации диалогового окна шрифтов -font необходимо установить снова, чтобы убедиться, что выбранный им шрифт соответствует новому значению именованного шрифта.

Пример

proc fontchooserDemo {} {
    wm title . "Font Chooser Demo"
    tk fontchooser configure -parent .
    button .b -command fontchooserToggle -takefocus 0
    fontchooserVisibility .b
    bind . <<TkFontchooserVisibility>> \
            [list fontchooserVisibility .b]
    foreach w {.t1 .t2} {
        text $w -width 20 -height 4 -borderwidth 1 -relief solid
        bind $w <FocusIn> [list fontchooserFocus $w]
        $w insert end "Text Widget $w"
    }
    .t1 configure -font {Courier 14}
    .t2 configure -font {Times 16}
    pack .b .t1 .t2; focus .t1
}
proc fontchooserToggle {} {
    tk fontchooser [expr {
            [tk fontchooser configure -visible] ?
            "hide" : "show"}]
}
proc fontchooserVisibility {w} {
    $w configure -text [expr {
            [tk fontchooser configure -visible] ?
            "Hide Font Dialog" : "Show Font Dialog"}]
}
proc fontchooserFocus {w} {
    tk fontchooser configure -font [$w cget -font] \
            -command [list fontchooserFontSelection $w]
}
proc fontchooserFontSelection {w font args} {
    $w configure -font [font actual $font]
}
fontchooserDemo

Смотрите также

font, tk

Licensed under Tcl/Tk terms
https://www.tcl.tk/man/tcl/TkCmd/fontchooser.htm

Licensed under Tcl/Tk terms
https://www.tcl.tk/man/tcl/TkCmd/fontchooser.htm

Spec-Zone.ru

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