25. Tk を用いたグラフィカルユーザインターフェイス
*************************************************

Tk/Tcl は長きにわたり Python の不可欠な一部でありつづけています。
Tk/Tcl は頑健でプラットホームに依存しないウィンドウ構築ツールキットで
あり、Python プログラマは "tkinter" パッケージやその拡張の
"tkinter.tix" および "tkinter.ttk" モジュールを使って利用できます。

"tkinter" パッケージは Tcl/Tk 上に作られた軽量なオブジェクト指向のレイ
ヤです。 "tkinter" を使うために Tcl コードを書く必要はありませんが、Tk
のドキュメントや、場合によっては Tcl のドキュメントを調べる必要がある
でしょう。"tkinter" は Tk のウィジェットを Python のクラスとして実装し
ているラッパをまとめたものです。加えて、内部モジュール "_tkinter" は、
Python と Tcl とがやり取りできるスレッドセーフなメカニズムを提供してい
ます。

"tkinter" の一番素晴らしい点は、速く、そしてほとんどの Python に付属し
ていることです。標準ドキュメントが頼りないものだとしても、代わりとなる
、リファレンス、チュートリアル、書籍その他が入手可能です。"tkinter" は
古臭いルックアンドフィールでも有名ですが、その点は Tk 8.5 で大きく改善
されました。とはいえ、他にも興味を引きそうな GUI ライブラリは多数あり
ます。それらについてのより詳しい情報は 他のグラフィカルユーザインタフ
ェースパッケージ 節を参照してください。

* 25.1. "tkinter" --- Tcl/Tk の Python インタフェース

  * 25.1.1. Tkinter モジュール

  * 25.1.2. Tkinter お助け手帳

    * 25.1.2.1. この節の使い方

    * 25.1.2.2. 簡単な Hello World プログラム

  * 25.1.3. Tcl/Tk を (本当に少しだけ) 見渡してみる

  * 25.1.4. 基本的な Tk プログラムと Tkinter との対応関係

  * 25.1.5. Tk と Tkinter はどのように関わっているのか

  * 25.1.6. 簡単なリファレンス

    * 25.1.6.1. オプションの設定

    * 25.1.6.2. Packer

    * 25.1.6.3. Packer のオプション

    * 25.1.6.4. ウィジェット変数を関連付ける

    * 25.1.6.5. ウィンドウマネージャ

    * 25.1.6.6. Tk オプションデータ型

    * 25.1.6.7. バインドとイベント

    * 25.1.6.8. index パラメータ

    * 25.1.6.9. 画像

  * 25.1.7. ファイルハンドラ

* 25.2. "tkinter.ttk" --- Tk のテーマ付きウィジェット

  * 25.2.1. Ttk を使う

  * 25.2.2. Ttk ウィジェット

  * 25.2.3. ウィジェット

    * 25.2.3.1. 標準オプション

    * 25.2.3.2. スクロール可能ウィジェットのオプション

    * 25.2.3.3. ラベルオプション

    * 25.2.3.4. 互換性オプション

    * 25.2.3.5. ウィジェットの状態

    * 25.2.3.6. ttk.Widget

  * 25.2.4. コンボボックス

    * 25.2.4.1. オプション

    * 25.2.4.2. 仮想イベント

    * 25.2.4.3. ttk.Combobox

  * 25.2.5. ノートブック

    * 25.2.5.1. オプション

    * 25.2.5.2. タブオプション

    * 25.2.5.3. タブ識別子

    * 25.2.5.4. 仮想イベント

    * 25.2.5.5. ttk.Notebook

  * 25.2.6. プログレスバー

    * 25.2.6.1. オプション

    * 25.2.6.2. ttk.Progressbar

  * 25.2.7. セパレータ

    * 25.2.7.1. オプション

  * 25.2.8. サイズグリップ

    * 25.2.8.1. プラットフォーム固有のメモ

    * 25.2.8.2. バグ

  * 25.2.9. ツリービュー

    * 25.2.9.1. オプション

    * 25.2.9.2. 要素オプション

    * 25.2.9.3. タグオプション

    * 25.2.9.4. カラム識別子

    * 25.2.9.5. 仮想イベント

    * 25.2.9.6. ttk.Treeview

  * 25.2.10. Ttk スタイル

    * 25.2.10.1. レイアウト

* 25.3. "tkinter.tix" --- Tkの拡張ウィジェット

  * 25.3.1. Tixを使う

  * 25.3.2. Tixウィジェット

    * 25.3.2.1. 基本ウィジェット

    * 25.3.2.2. ファイルセレクタ

    * 25.3.2.3. 階層的リストボックス

    * 25.3.2.4. 表的リストボックス

    * 25.3.2.5. 管理ウィジェット

    * 25.3.2.6. 画像タイプ

    * 25.3.2.7. その他のウィジェット

    * 25.3.2.8. ジオメトリマネジャを作る

  * 25.3.3. Tixコマンド

* 25.4. "tkinter.scrolledtext" --- スクロールするテキストウィジェッ
  ト

* 25.5. IDLE

  * 25.5.1. メニュー

    * 25.5.1.1. File メニュー (Shell ウィンドウ、Editor ウィンドウ)

    * 25.5.1.2. Edit メニュー (Shell ウィンドウ、Editor ウィンドウ)

    * 25.5.1.3. Format メニュー (Shell ウィンドウ、Editor ウィンドウ
      )

    * 25.5.1.4. Run メニュー (Editor ウィンドウのみ)

    * 25.5.1.5. Shell メニュー (Shell ウィンドウのみ)

    * 25.5.1.6. Debug メニュー (Shell ウィンドウのみ)

    * 25.5.1.7. Options メニュー (Shell ウィンドウ、Editor ウィンド
      ウ)

    * 25.5.1.8. Window メニュー (Shell ウィンドウ、Editor ウィンドウ
      )

    * 25.5.1.9. Help メニュー (Shell ウィンドウ、Editor ウィンドウ)

    * 25.5.1.10. コンテキストメニュー

  * 25.5.2. 編集とナビゲーション

    * 25.5.2.1. Editor windows

    * 25.5.2.2. Key bindings

    * 25.5.2.3. 自動的な字下げ

    * 25.5.2.4. 補完 (Completions)

    * 25.5.2.5. 呼び出しヒント (Calltips)

    * 25.5.2.6. Python Shell ウィンドウ

    * 25.5.2.7. テキストの色

  * 25.5.3. スタートアップとコードの実行

    * 25.5.3.1. コマンドラインの使い方

    * 25.5.3.2. Startup failure

    * 25.5.3.3. Running user code

    * 25.5.3.4. User output in Shell

    * 25.5.3.5. Developing tkinter applications

    * 25.5.3.6. サブプロセスを起こさずに起動する

  * 25.5.4. ヘルプとお好み設定

    * 25.5.4.1. Help sources

    * 25.5.4.2. Setting preferences [お好み設定]

    * 25.5.4.3. IDLE on macOS

    * 25.5.4.4. Extensions [拡張]

* 25.6. 他のグラフィカルユーザインタフェースパッケージ
