## Tcl9.0.3/Tk9.0.3 Documentation > Tk Commands > fontchooser

### Tcl/Tk Applications | Tcl Commands | Tk Commands | [incr Tcl] Package Commands | SQLite3 Package Commands | TDBC Package Commands | tdbc::mysql Package Commands | tdbc::odbc Package Commands | tdbc::postgres Package Commands | tdbc::sqlite3 Package Commands | Thread Package Commands | Tcl C API | Tk C API | [incr Tcl] Package C API | TDBC Package C API

  NAME
    fontchooser — 文字形状選択問合せ箱を制御する 　control font selection dialog
  構文 SYNOPSIS
  説明 DESCRIPTION
    tk fontchooser configure ?-option value ...?
    tk fontchooser show
    tk fontchooser hide
  構成設定指示項目 　CONFIGURATION OPTIONS
    -parent
    -title
    -font
    -command
    -visible
  仮想行事 VIRTUAL EVENTS
    <<TkFontchooserVisibility>>
    <<TkFontchooserFontChanged>>
  註意 NOTES
  用例 EXAMPLE
  SEE ALSO
  KEYWORDS

### NAME

fontchooser — 文字形状選択問合せ箱を制御する 　control font selection dialog

### 構文 SYNOPSIS

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

### 説明 DESCRIPTION

tk fontchooser は Tk 文字形状選択問合せ箱を制御する｡利用できる場合はOS固有の文字形状選択問合せ箱を使うが､それ以外は Tcl 実装問合せ箱を使う｡ The tk fontchooser command controls the Tk font selection dialog. It uses the native platform font selection dialog where available, or a dialog implemented in Tcl otherwise.

他の大多数の Tk 問合せ箱命令とは異なり､ tk fontchooser は直ぐには結果を返さない､何かのOS上(macOS)の文字形状問合せ箱が排他専用ではなく､他のもの (Windows) が排他専用質問形式である｡この相違を埋める為､問合せ箱との使用者対話機能は呼戻し又は仮想行事経由で呼出し側と通信する｡ Unlike most of the other Tk dialog commands, tk fontchooser does not return an immediate result, as on some platforms (macOS) the standard font dialog is modeless while on others (Windows) it is modal. To accommodate this difference, all user interaction with the dialog will be communicated to the caller via callbacks or virtual events.

tk fontchooser 命令は次の形式の内の一つを採り得る: The tk fontchooser command can have one of the following forms:

tk fontchooser configure ?-option value ...?
  下の構成設定指示項目の一つ或はそれ以上を設定又は問合せする( Tk 部品構成設定と類似)｡ Set or query one or more of the configurations options below (analogous to Tk widget configuration).

tk fontchooser show
  文字形状選択問合せ箱を表示する｡OSによって､直ちに制御を返すか問合せ選択箱が引っ込められる｡ Show the font selection dialog. Depending on the platform, may return immediately or only once the dialog has been withdrawn.

tk fontchooser hide
  文字形状選択問合せ箱が可視なら隠蔽して､仕掛りの tk fontchooser show 命令を返す原因になる｡ Hide the font selection dialog if it is visible and cause any pending tk fontchooser show command to return.

### 構成設定指示項目 　CONFIGURATION OPTIONS

-parent
  文字形状の選択質問箱の論理的親の指定/回等する(他の質問箱への -parent 指示項目に準じる)｡親の窓が破壊された時､文字形状の選択質問箱は可視なら隠蔽される｡ Specifies/returns the logical parent window of the font selection dialog (similar to the -parent option to other dialogs). The font selection dialog is hidden if it is visible when the parent window is destroyed.

-title
  質問箱の表題を指定/回等する｡文字形状質問箱が表題を運営していないOSでは効果を有さない｡ Specifies/returns the title of the dialog. Has no effect on platforms where the font selection dialog does not support titles.

-font
  もし質問箱が選択されているか(もしOSに運営されている場合)､可視かの場合､質問箱内で現在選択されている文字形状を指定/回等する｡文字形状を選択しないことを指し示す為に空文字列を設定できる｡文字形状は font 取扱説明書内の "FONT DESCRIPTION" 項目によって与えられるどの形式でも指定できる｡ Specifies/returns the font that is currently selected in the dialog if it is visible, or that will be initially selected when the dialog is shown (if supported by the platform). Can be set to the empty string to indicate that no font should be selected. Fonts can be specified in any form given by the "FONT DESCRIPTION" section in the font manual page.

-command
  文字形状選択が使用者に作成された時､呼出される命令前置辞を指定/回等する｡命令前置辞は大域水準で選択された文字形状に追記された仕様を得た後に評価される｡文字形状選択質問箱が更なる文字形状属性(色などの)の制御を提供しているOSでは､評価の前に追加的 鍵/値 対を追記できるかもしれない｡文字形状は font 取扱説明書内の "FONT DESCRIPTION" 項の形式 [3] のリストによって与えられる(即ち､ {family size style ?style ...?} の形式のリスト)｡ Specifies/returns the command prefix to be called when a font selection has been made by the user. The command prefix is evaluated at the global level after having the specification of the selected font appended. On platforms where the font selection dialog offers the user control of further font attributes (such as color), additional key/value pairs may be appended before evaluation. Can be set to the empty string to indicate that no callback should be invoked. Fonts are specified by a list of form [3] of the "FONT DESCRIPTION" section in the font manual page (i.e. a list of the form {family size style ?style ...?}).

-visible
  文字形状選択箱が現在可視か否かを指し示す論理値を返す読出し専用の指示項目｡この指示項目を設定しようとする試みは不都合の結果になる｡ Read-only option that returns a boolean indicating whether the font selection dialog is currently visible. Attempting to set this option results in an error.

### 仮想行事 VIRTUAL EVENTS

<<TkFontchooserVisibility>>
  文字選択質問箱の見かけが変更した時は何時でも､使用者の活動(譬えば､ OK/Cancel 釦か箱閉鎖経由で質問箱の配置)と tk fontchooser show/hide 命令が呼ばれた両方の結果として､質問箱の親に送る｡束縛記述譜は -visible 構成設定指示項目の問合せにより質問箱の現在の見掛けを決定できる｡ Sent to the dialog parent whenever the visibility of the font selection dialog changes, both as a result of user action (e.g. disposing of the dialog via OK/Cancel button or close box) and of the tk fontchooser show/hide commands being called. Binding scripts can determine the current visibility of the dialog by querying the -visible configuration option.

<<TkFontchooserFontChanged>>
  使用者の活動と -font 構成設定指示項目の設定の結果の両方として､文字形状選択質問箱が可視であり且つ選択された文字形状が変更したかを選択箱の親に送る｡束縛記述譜は -font 構成設定指示項目の問合せにより現在の選択を決定できる｡ Sent to the dialog parent whenever the font selection dialog is visible and the selected font changes, both as a result of user action and of the -font configuration option being set. Binding scripts can determine the currently selected font by querying the -font configuration option.

### 註意 NOTES

呼出し者は tk fontchooser show からの結果を期待してはならないし､命令が返った時に選択箱が取去られるか閉じられることを仮定してはならない｡質問箱との全ての使用者との相互対話機能は -command 呼戻しと <<TkFontchooser*>> 仮想行事経由で呼出し側と通信される｡その実装は､送られた仮想行事に対応して呼ばれた回収の中の使用者の正確な行動に依存する｡質問箱に適用や決定釦がある場合､その釦は -command 呼出しと <<TkFontchooserFontChanged>> 仮想行事を起動することになる｡どれかの実装では他の使用者の行動もその効果を有する; 実例として Mac OS X では､文字形状選択標準質問箱は直ちに使用者の全ての選択を呼出し側に返す｡ Callers should not expect a result from tk fontchooser show and may not assume that the dialog has been withdrawn or closed when the command returns. All user interaction with the dialog is communicated to the caller via the -command callback and the <<TkFontchooser*>> virtual events. It is implementation dependent which exact user actions result in the callback being called resp. the virtual events being sent. Where an Apply or OK button is present in the dialog, that button will trigger the -command callback and <<TkFontchooserFontChanged>> virtual event. On some implementations other user actions may also have that effect; on macOS for instance, the standard font selection dialog immediately reflects all user choices to the caller.

文字選択質問箱による影響を受けるよう意図された多重の部品の存在下では､注目の変更が正しく処理されるよう註意が必要である: 質問箱内の選択された文字形状は常に注目を伴う部品の現在の文字形状に一致するべきであり､ -command 呼戻しは注目を有する部品上のみで行動するべきである｡推奨される実務は､部品経由 <FocusIn> 処理機能内で文字形状問合せ箱 -font と -command 構成設定指示項目を設定することである(必要なら､それの削除も､即ち､空文字列の設定 - 相当する<FocusOut> 処理機能内で)｡これは文字形状選択質問箱を使う外部函数符号命令で､矢張り質問箱を使いたい応用譜との衝突を避ける為に殊更重要である｡ In the presence of multiple widgets intended to be influenced by the font selection dialog, care needs to be taken to correctly handle focus changes: the font selected in the dialog should always match the current font of the widget with the focus, and the -command callback should only act on the widget with the focus. The recommended practice is to set font dialog -font and -command configuration options in per-widget <FocusIn> handlers (and if necessary to unset them - i.e. set to the empty string - in corresponding <FocusOut> handlers). This is particularly important for implementers of library code using the font selection dialog, to avoid conflicting with application code that may also want to use the dialog.

文字形状選択質問箱が応用譜大域的であるため､ tk fontchooser を呼ぶ多重解釈実行機能の存在下では､最も最近呼ばれた tk fontchooser configure の解釈実行機能によってのみ -command 呼戻しが設定されるべきで､さもないと､使用者の行動に応じて tk fontchooser show が起動され､その解釈実行機能によって設定された -parent のみが<<TkFontchooser*>> 仮想行事を受取ることになる｡ Because the font selection dialog is application-global, in the presence of multiple interpreters calling tk fontchooser, only the -command callback set by the interpreter that most recently called tk fontchooser configure or tk fontchooser show will be invoked in response to user action and only the -parent set by that interpreter will receive <<TkFontchooser*>> virtual events.

文字形状質問箱実装は単に -font 構成設定指示項目の値として実際の文字形状fontを保存する(そして返す)｡これは -font が名前付けられた文字形状に設定された時も発生する｡もしその文字形状が引続いて変更された場合､その文字形状選択箱の -font 指示項目はその選択された文字形状が新しい名付けられた値と確実に合致するために再度設定されることが必要になる｡ The font dialog implementation may only store (and return) font actual data as the value of the -font configuration option. This can be an issue when -font is set to a named font, if that font is subsequently changed, the font dialog -font option needs to be set again to ensure its selected font matches the new value of the named font.

### 用例 EXAMPLE

    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

### SEE ALSO

font, tk

### KEYWORDS

dialog, font, font selection, font chooser, font panel
Copyright © 2008 Daniel A. Steffen <das(at)users.sourceforge.net>