fontchooser
-
ИМЯ
- fontchooser — диалог выбора шрифта
- СИНТАКСИС
- ОПИСАНИЕ
-
tk fontchooser configure ?-option value -option value ...?
- tk fontchooser show
- tk fontchooser hide
- tk fontchooser show
- НАСТРОЙКИ
- ВИРТУАЛЬНЫЕ СОБЫТИЯ
-
<<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 вернуть результат.
Параметры конфигурации
Виртуальные события
- <<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