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

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

`tkinter` パッケージはオブジェクトの薄い層で作ったTcl/Tkの最上層です。`tkinter` を使うには、Tcl のコードを書く必要はありませんが、Tk のドキュメント、またはときどき、Tcl のドキュメントを調べる 必要が出て来ます。`tkinter` は Python クラスとして実装した Tk ウィジェットのラッパーの集合です。

`tkinter` の一番素晴らしい点は、速く、そしてほとんどの Python に付属していることです。標準ドキュメントが頼りないものだとしても、代わりとなる、リファレンス、チュートリアル、書籍その他が入手可能です。`tkinter` は古臭いルックアンドフィールでも有名ですが、その点は Tk 8.5 で大きく改善されました。とはいえ、他にも興味を引きそうな GUI ライブラリは多数あります。 Python wiki には、いくつかの代替の GUI フレームワークとツール の一覧があります。

- `tkinter` --- Tcl/Tk の Python インターフェース
  - Architecture
  - Tkinter モジュール
  - Tkinter お助け手帳
    - A Hello World Program
    - Important Tk Concepts
    - Understanding How Tkinter Wraps Tcl/Tk
    - How do I...? What option does...?
    - Navigating the Tcl/Tk Reference Manual
  - Threading model
  - 簡単なリファレンス
    - オプションの設定
    - Packer
    - Packer のオプション
    - ウィジェット変数を関連付ける
    - ウィンドウマネージャ
    - Tk オプションデータ型
    - バインドとイベント
    - index パラメータ
    - 画像
  - ファイルハンドラ
- `tkinter.colorchooser` --- カラー選択ダイアログ
- `tkinter.font` --- Tkinterフォントラッパー
- Tkinter ダイアログ
  - `tkinter.simpledialog` --- 標準 Tkinter 入力ダイアログ
  - `tkinter.filedialog` --- ファイル選択ダイアログ
    - ネイティブの読み込み/保存ダイアログ
  - `tkinter.commondialog` --- Dialog window templates
- `tkinter.messagebox` --- Tkinterのメッセージプロンプト
- `tkinter.scrolledtext` --- スクロールするテキストウィジェット
- `tkinter.dnd` --- Drag and drop support
- `tkinter.ttk` --- Tk のテーマ付きウィジェット
  - Ttk を使う
  - Ttk ウィジェット
  - ウィジェット
    - 標準オプション
    - スクロール可能ウィジェットのオプション
    - ラベルオプション
    - 互換性オプション
    - ウィジェットの状態
    - ttk.Widget
  - コンボボックス
    - オプション
    - 仮想イベント
    - ttk.Combobox
  - Spinbox
    - オプション
    - 仮想イベント
    - ttk.Spinbox
  - ノートブック
    - オプション
    - タブオプション
    - タブ識別子
    - 仮想イベント
    - ttk.Notebook
  - プログレスバー
    - オプション
    - ttk.Progressbar
  - セパレータ
    - オプション
  - サイズグリップ
    - プラットフォーム固有のメモ
    - バグ
  - ツリービュー
    - オプション
    - 要素オプション
    - タグオプション
    - カラム識別子
    - 仮想イベント
    - ttk.Treeview
  - Ttk スタイル
    - レイアウト
- `tkinter.tix` --- Tkの拡張ウィジェット
  - Tixを使う
  - Tixウィジェット
    - 基本ウィジェット
    - ファイルセレクタ
    - 階層的リストボックス
    - 表的リストボックス
    - 管理ウィジェット
    - 画像タイプ
    - その他のウィジェット
    - ジオメトリマネジャを作る
  - Tixコマンド
- IDLE
  - メニュー
    - File メニュー (Shell ウィンドウ、Editor ウィンドウ)
    - Edit メニュー (Shell ウィンドウ、Editor ウィンドウ)
    - Format メニュー (Shell ウィンドウ、Editor ウィンドウ)
    - Run メニュー (Editor ウィンドウのみ)
    - Shell メニュー (Shell ウィンドウのみ)
    - Debug メニュー (Shell ウィンドウのみ)
    - Options メニュー (Shell ウィンドウ、Editor ウィンドウ)
    - Window メニュー (Shell ウィンドウ、Editor ウィンドウ)
    - Help メニュー (Shell ウィンドウ、Editor ウィンドウ)
    - Context menus
  - Editing and Navigation
    - Editor windows
    - Key bindings
    - 自動的な字下げ
    - 検索と置換
    - 補完 (Completions)
    - 呼び出しヒント (Calltips)
    - Code Context
    - Shell window
    - テキストの色
  - Startup and Code Execution
    - コマンドラインの使い方
    - Startup failure
    - Running user code
    - User output in Shell
    - Developing tkinter applications
    - サブプロセスを起こさずに起動する
  - Help and Preferences
    - Help sources
    - Setting preferences [お好み設定]
    - IDLE on macOS
    - Extensions [拡張]
  - idlelib