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

**ソースコード:** Lib/tkinter/__init__.py

======================================================================

"tkinter" パッケージ ("Tk インターフェース") は、 Tcl/Tk GUI ツールキ
ットに対する標準の Python インターフェースです。 Tk と "tkinter"  は
macOS を含むほとんどの Unix プラットフォームの他、 Windows システム上
でも利用できます。

コマンドラインから  "python -m tkinter" を実行すると簡素な Tk インター
フェースを表示するウィンドウが開き、システムに "tkinter" が正しくイン
ストールされたことが分かります。さらに、インストールされた Tcl/Tk のバ
ージョンが表示されているので、 Tcl/Tk のドキュメントを参照する時にはそ
のバージョン情報が役立つでしょう。

Tkinter は、スレッドサポートの有無を問わず、さまざまなバージョンの
Tcl/Tk をサポートしています。 サポートされる最も古いバージョンは
Tcl/Tk 8.5.12 で、Python の公式バイナリリリースには Tcl/Tk 9.0 が同梱
されています。 サポートするバージョンの詳細は "_tkinter" モジュールの
ソースコードを参照してください。

バージョン 3.11 で変更: Tcl/Tk 8.5.12 より古いバージョンのサポートが削
除されました。

Tkinter は単なるラッパーではなく、Python らしい使用感を実現するための
独自の仕組みを備えています。本ドキュメントでは追加・変更された機能を中
心に解説し、変更のない部分については Tcl/Tk の公式ドキュメントを参照し
ます。

注釈:

  Tcl/Tk 8.5 (2007 年) では、テーマを利用する新しいユーザーインターフ
  ェース部品群と、それらを使うための新しい API が導入されました
  ("tkinter.ttk" を参照)。 新旧どちらの API も引き続き利用できます。
  オンラインで見つかるドキュメントの多くは今でも古い API を使っており
  、ひどく古い内容であることがあります。

これは *オプションのモジュール* です。 使用している CPython に含まれて
いない場合は、配布元 (Python の提供者) のドキュメントを確認してくださ
い。 配布者の方は オプションのモジュールの要件 を参照してください。

参考:

  * TkDocs
       Tkinterを使ったユーザインタフェースの作成に関する広範なチュート
       リアルです。主要な概念を説明し、最新のAPI を使用した推奨される
       アプローチを説明します。

  * Tkinter 8.5 reference: a GUI for Python
       利用できるクラス、メソッド、オプションを詳しく説明した Tkinter
       8.5 のリファレンスドキュメントです。

  Tcl/Tk リソース:

  * Tk コマンド
       Tkinter が内部で使う Tcl/Tk コマンドを網羅したリファレンスです
       。

  * Tcl/Tk ホームページ
       追加のドキュメントと、Tcl/Tk 本体の開発へのリンクがあります。

  書籍:

  * Modern Tkinter for Busy Python Developers
       Mark Roseman 著。 (ISBN 978-1999149567)

  * Python GUI programming with Tkinter
       Alan D. Moore 著。 (ISBN 978-1788835886)

  * Programming Python
       Mark Lutz 著。 Tkinter について優れた解説があります。 (ISBN
       978-0596158101)

  * Tcl and the Tk Toolkit (2nd edition)
       Tcl/Tk の考案者 John Ousterhout と Ken Jones の共著。 Tkinter
       は扱っていません。 (ISBN 978-0321336330)


アーキテクチャ
==============

Tcl/Tk は単一のライブラリではなく、機能の異なる複数のモジュールで構成
され、それぞれに公式ドキュメントがあります。 Python のバイナリリリース
には、追加のモジュールも一緒に同梱されています。

Tcl
   Tcl は Python と同様に、インタープリタで実行する動的プログラミング
   言語です。 汎用プログラミング言語として単独でも使えますが、通常はス
   クリプトエンジンや Tk ツールキットへのインターフェースとして C アプ
   リケーションに組み込まれます。 Tcl ライブラリには、Tcl インタープリ
   タのインスタンスを 1 つ以上作成して管理し、そこで Tcl コマンドやス
   クリプトを実行したり、Tcl や C で実装した独自のコマンドを追加したり
   する C インターフェースがあります。 各インタープリタはイベントキュ
   ーを持ち、そこにイベントを送り、処理する機能が用意されています。
   Python とは異なり、Tcl の実行モデルは協調的マルチタスクを中心に設計
   されており、Tkinter はこの違いを橋渡しします (詳しくは Threading
   model (スレッドモデル) を参照)。

Tk
   Tk は C で実装された Tcl パッケージ で、GUI ウィジェットを作成・操
   作する独自のコマンドを追加します。 各 "Tk" オブジェクトには、Tk を
   読み込んだ専用の Tcl インタープリタのインスタンスが組み込まれていま
   す。 Tk のウィジェットは外観こそ古めかしいものの、柔軟にカスタマイ
   ズできます。 Tk は Tcl のイベントキューを使って GUI イベントを生成
   ・処理します。

Ttk
   Themed Tk (Ttk) は新しい Tk ウィジェット群で、多くの従来の Tk ウィ
   ジェットよりも、各プラットフォームに適した優れた外観を提供します。
   Ttk は Tk 8.5 以降、Tk の一部として配布されています。 Python バイン
   ディングは別のモジュール "tkinter.ttk" で提供されています。

内部では、Tk と Ttk は OS の機能を使います。 Unix/X11 では Xlib、macOS
では Cocoa、Windows では GDI です。

Python アプリケーションが Tkinter のクラスを使って、例えばウィジェット
を作成するとき、"tkinter" モジュールはまず Tcl/Tk のコマンド文字列を組
み立てます。 その文字列を内部のバイナリモジュール "_tkinter" に渡し、
このモジュールが Tcl インタープリタを呼び出して評価します。 続いて Tcl
インタープリタが Tk や Ttk パッケージを呼び出し、これらが Xlib、Cocoa
、GDI を呼び出します。


Tkinter のモジュール
====================

Tkinter の機能は複数のモジュールに分かれています。 多くのアプリケーシ
ョンでは、メインの "tkinter" モジュールと、テーマを利用する新しいウィ
ジェット群と API を提供する "tkinter.ttk" モジュールが必要です。

   from tkinter import *
   from tkinter import ttk

Tk をサポートするモジュールには、次のものがあります。

"tkinter"
   Tkinter のメインモジュールです。

"tkinter.colorchooser"
   ユーザに色を選択させるためのダイアログです。

"tkinter.commondialog"
   このリストの他のモジュールが定義しているダイアログの基底クラスです
   。

"tkinter.filedialog"
   ユーザが開きたいファイルや保存したいファイルを指定できるようにする
   共通のダイアログです。

"tkinter.font"
   フォントの扱いを補助するためのユーティリティです。

"tkinter.messagebox"
   標準的な Tk のダイアログボックスにアクセスします。

"tkinter.scrolledtext"
   垂直スクロールバー付きのテキストウィジェットです。

"tkinter.simpledialog"
   基本的なダイアログと便宜関数 (convenience function) です。

"tkinter.ttk"
   Tk 8.5 で導入された、テーマを利用するウィジェット群です。 メインの
   "tkinter" モジュールにある従来のウィジェットの多くに代わる、新しい
   ウィジェットを提供します。

その他のモジュール:

"_tkinter"
   Tcl/Tk への低水準インターフェースを含むバイナリモジュールです。 メ
   インの "tkinter" モジュールが自動的にインポートするもので、アプリケ
   ーションのプログラマーが直接使ってはいけません。 通常は共有ライブラ
   リ (または DLL) ですが、Python インタープリタに静的にリンクされてい
   る場合もあります。

"idlelib"
   Python の統合開発学習環境 (IDLE) です。 "tkinter" を使って作られて
   います。

"tkinter.constants"
   Tkinter の呼び出しでさまざまな引数を渡す際に、文字列の代わりに使え
   るシンボル定数です。 メインの "tkinter" モジュールによって自動的に
   インポートされます。

"tkinter.dnd"
   (実験的) "tkinter" のドラッグアンドドロップ機能です。 Tk DND に置き
   換えられた際に非推奨となる予定です。

"turtle"
   Tk ウィンドウ上でタートルグラフィックスを実現します。


Tkinter の手引き
================

この節は Tk や Tkinter の網羅的なチュートリアルではありません。 チュー
トリアルについては、前述の外部資料を参照してください。 ここでは
Tkinter アプリケーションの概要を手短に示し、Tk の基本概念と Tkinter ラ
ッパーの構造を説明します。

この節の残りの部分では、Tkinter アプリケーションに必要なクラス、メソッ
ド、オプションを見つける方法と、公式 Tcl/Tk リファレンスマニュアルを含
め、それらの詳しいドキュメントを探す場所を説明します。


Hello World プログラム
----------------------

まず Tkinter の「Hello World」アプリケーションを見ていきましょう。 最
小限のプログラムではありませんが、知っておくべき重要な概念を説明するの
に十分な内容を含んでいます。

   from tkinter import *
   from tkinter import ttk
   root = Tk()
   frm = ttk.Frame(root, padding=10)
   frm.grid()
   ttk.Label(frm, text="Hello World!").grid(column=0, row=0)
   ttk.Button(frm, text="Quit", command=root.destroy).grid(column=1, row=0)
   root.mainloop()

インポートの次の行では "Tk" クラスのインスタンスを作成し、Tk を初期化
して、対応する Tcl インタープリタを作成します。 また、ルートウィンドウ
と呼ばれるトップレベルウィンドウを作成し、これがアプリケーションのメイ
ンウィンドウになります。

続く行ではフレームウィジェットを作成します。 この例では、次に作成する
ラベルとボタンをその中に配置します。 フレームはルートウィンドウ内に収
まります。

次の行では、固定のテキスト文字列を表示するラベルウィジェットを作成しま
す。 "grid()" メソッドで、ラベルを含むフレームウィジェット内での相対的
な配置 (位置) を指定します。 これは HTML の表と似た仕組みです。

次にボタンウィジェットを作成し、ラベルの右側に配置します。 ボタンを押
すと、ルートウィンドウの "destroy()" メソッドが呼び出されます。

最後に "mainloop()" メソッドがすべてを画面に表示し、プログラムが終了す
るまでユーザーの入力に応答します。


Tk の重要な概念
---------------

この簡単なプログラムにも、次の重要な Tk の概念が現れています。

ウィジェット
   Tkinter のユーザーインターフェースは、個々の *ウィジェット* から構
   成されます。 各ウィジェットは "ttk.Frame"、"ttk.Label"、
   "ttk.Button" などのクラスから作成された Python オブジェクトとして表
   されます。

ウィジェットの階層
   ウィジェットは *階層* をなします。 ラベルとボタンはフレームの中にあ
   り、そのフレームはルートウィンドウの中にありました。 各 *子* ウィジ
   ェットを作成するとき、ウィジェットのコンストラクターの最初の引数と
   して *親* ウィジェットを渡します。

設定オプション
   ウィジェットには *設定オプション* があり、ラベルやボタンに表示する
   テキストなど、外観や動作を変更できます。 利用できるオプションはウィ
   ジェットのクラスによって異なります。

ジオメトリ管理
   ウィジェットは作成しただけではユーザーインターフェースに追加されま
   せん。 "grid" などの *ジオメトリマネージャー* が、ユーザーインター
   フェース内の配置場所を制御します。

イベントループ
   Tkinter がユーザーの入力やプログラムによる変更に応答し、画面を更新
   するのは、*イベントループ* が実行されているときだけです。 プログラ
   ムがイベントループを実行していなければ、ユーザーインターフェースは
   更新されません。


Tkinter による Tcl/Tk のラップの仕組み
--------------------------------------

アプリケーションが Tkinter のクラスやメソッドを使うと、Tkinter は内部
で Tcl/Tk コマンドを表す文字列を組み立て、アプリケーションの "Tk" イン
スタンスに対応する Tcl インタープリタで実行します。

リファレンスドキュメントを調べるとき、適切なメソッドやオプションを探す
とき、既存のコードを応用するとき、Tkinter アプリケーションをデバッグす
るときなどに、内部の Tcl/Tk コマンドがどのようなものかを理解していると
役立つことがあります。

例として、前述の Tkinter スクリプトの主要部分に対応する Tcl/Tk コード
を示します。

   ttk::frame .frm -padding 10
   grid .frm
   grid [ttk::label .frm.lbl -text "Hello World!"] -column 0 -row 0
   grid [ttk::button .frm.btn -text "Quit" -command "destroy ."] -column 1 -row 0

Tcl の構文は多くのシェル言語と似ていて、先頭の単語が実行するコマンド、
その後に空白で区切って並べたものがコマンドの引数です。 詳細に立ち入ら
ず、次の点に注目してください。

* ウィジェットを作成するコマンド ("ttk::frame" など) は、Tkinter のウ
  ィジェットクラスに対応します。

* Tcl のウィジェットのオプション ("-text" など) は、Tkinter のキーワー
  ド引数に対応します。

* Tcl は *パス名* (".frm.btn" など) でウィジェットを参照しますが、
  Tkinter は名前ではなくオブジェクトへの参照を使います。

* ウィジェットの階層内での位置は、"." (ドット) を区切り文字とする (階
  層的な) パス名で表されます。 ルートウィンドウのパス名は "." (ドット)
  だけです。 Tkinter では、パス名ではなく、子ウィジェットを作成すると
  きに親ウィジェットを指定することで階層を定義します。

* Tcl で独立した *コマンド* として実装されている操作 ("grid" や
  "destroy" など) は、Tkinter のウィジェットオブジェクトの *メソッド*
  として表されます。 この後で見るように、Tcl にもウィジェットオブジェ
  クトのメソッド呼び出しのような形式があり、こちらは Tkinter で使う形
  式により近いものです。


どうすればいい？ どのオプションを使う？
---------------------------------------

Tkinter で何かをする方法が分からず、使っているチュートリアルやリファレ
ンスドキュメントでもすぐに見つからない場合は、役立つ探し方がいくつかあ
ります。

まず、個々のウィジェットの細かな動作は、Tkinter と Tcl/Tk のバージョン
によって変わることを覚えておいてください。 ドキュメントを探す際は、シ
ステムにインストールされた Python と Tcl/Tk のバージョンに対応している
ことを確認してください。

API の使い方を調べるときは、使っているクラス、オプション、メソッドの正
確な名前が分かると役立ちます。 Python の対話型シェルや "print()" を使
ってオブジェクトを調べると、必要なものを特定できます。

ウィジェットで利用できる設定オプションを調べるには、"configure()" メソ
ッドを呼び出します。 各オプションのデフォルト値や現在の値など、さまざ
まな情報を含む辞書が返されます。 オプションの名前だけを取得するには
"keys()" を使います。

   btn = ttk.Button(frm, ...)
   print(btn.configure().keys())

多くのウィジェットは共通の設定オプションを持つため、そのウィジェットク
ラスに固有のオプションがどれかを調べると役立ちます。 その方法の一つは
、フレームなどの単純なウィジェットとオプションの一覧を比較することです
。

   print(set(btn.configure().keys()) - set(frm.configure().keys()))

同様に、ウィジェットオブジェクトで利用できるメソッドは標準の "dir()"
関数で調べられます。 試してみると分かるように、共通のウィジェットメソ
ッドは 200 個以上あるため、ここでもそのウィジェットクラスに固有のもの
を特定すると役立ちます。

   print(dir(btn))
   print(set(dir(btn)) - set(dir(frm)))


Tcl/Tk リファレンスマニュアルの調べ方
-------------------------------------

前述のとおり、公式の Tk コマンド リファレンスマニュアル (man ページ)
は、ウィジェットに対する個々の操作の動作について、最も正確な説明を提供
していることがよくあります。 必要なオプションやメソッドの名前が分かっ
ていても、調べる場所が複数ある場合があります。

Tkinter の操作はすべてウィジェットオブジェクトのメソッド呼び出しとして
実装されていますが、すでに見たように、Tcl/Tk の操作の多くはウィジェッ
トのパス名を最初の引数とし、その後に任意の引数が続くコマンドです。 例
えば、次のようになります。

   destroy .
   grid .frm.btn -column 0 -row 0

一方、ウィジェットオブジェクトのメソッドを呼び出すような形式のものもあ
ります (実際には、Tcl/Tk でウィジェットを作成すると、そのパス名を名前
に持つ Tcl コマンドが作成されます。 このコマンドの最初の引数は、呼び出
すメソッドの名前です)。

   .frm.btn invoke
   .frm.lbl configure -text "Goodbye"

公式 Tcl/Tk リファレンスドキュメントでは、メソッド呼び出しのような操作
の多くは、個々のウィジェットの man ページに記載されています (例えば、
"invoke()" メソッドは ttk::button の man ページにあります)。 一方、ウ
ィジェットを引数に取る関数には、専用の man ページが用意されていること
が多くあります (例えば grid)。

共通のオプションやメソッドの多くは、options や ttk::widget の man ペー
ジに記載されています。 その他は個々のウィジェットクラスの man ページに
あります。

Tkinter のメソッドには、"winfo_x()"、"winfo_height()"、
"winfo_viewable()" など、複数の単語を組み合わせた名前も多くあります。
これらのドキュメントはすべて winfo の man ページにあります。

注釈:

  少し紛らわしいのですが、Tkinter のすべてのウィジェットには、そのウィ
  ジェットを操作するのではなく、どのウィジェットにも依存しないグローバ
  ルな操作を行うメソッドもあります。 クリップボードやシステムのベルに
  アクセスするメソッドがその例です。 (これらは、Tkinter のすべてのウィ
  ジェットが継承する基底クラス "Widget" のメソッドとして実装されていま
  す。 )


スレッドモデル
==============

Python と Tcl/Tk のスレッドモデルは大きく異なり、"tkinter" はその違い
を橋渡ししようとします。 スレッドを使う場合は、この点を理解しておく必
要があるかもしれません。

Python インタープリタには多くのスレッドを関連付けることができます。
Tcl でも複数のスレッドを作成できますが、各スレッドには別々の Tcl イン
タープリタのインスタンスが対応します。 スレッドは複数のインタープリタ
のインスタンスを作成することもできますが、各インスタンスを使えるのはそ
れを作成したスレッドだけです。

"tkinter" が作成する各 "Tk" オブジェクトには、Tcl インタープリタが含ま
れます。 また、そのインタープリタを作成したスレッドも記録します。
"tkinter" の呼び出しは、どの Python スレッドからでも行えます。 内部で
は、"Tk" オブジェクトを作成した以外のスレッドから呼び出された場合、イ
ンタープリタのイベントキューにイベントを送り、実行されたときに結果を呼
び出し元の Python スレッドに返します。

Tcl/Tk アプリケーションは通常イベント駆動です。 つまり、初期化後にイン
タープリタがイベントループ ("Tk.mainloop") を実行し、イベントに応答し
ます。 シングルスレッドで動作するため、イベントハンドラーはすばやく処
理を終える必要があります。 そうしないと、他のイベントの処理が妨げられ
ます。 これを避けるには、時間のかかる計算をイベントハンドラーで実行せ
ず、タイマーを使って細かい処理に分割するか、別のスレッドで実行します。
この点は、イベントハンドラーを含むすべてのアプリケーションコードとは完
全に別のスレッドで GUI を動かす、多くの GUI ツールキットとは異なります
。

Tcl インタープリタがイベントループを実行してイベントを処理していない場
合、Tcl インタープリタを実行しているスレッド以外からの "tkinter" 呼び
出しはすべて失敗します。

例外的な場合がいくつかあります。

* スレッドサポートなしでビルドされた Tcl/Tk ライブラリは、現在ではまれ
  です。 同梱バージョンの Tcl/Tk 9.0 は常にスレッドに対応しているため
  、この場合に該当するのは古い 8.x の一部のビルドだけです。 ライブラリ
  がスレッドに対応していない場合、"tkinter" は呼び出し元の Python スレ
  ッドからライブラリを呼び出します。 これは Tcl インタープリタを作成し
  たスレッドとは異なる場合もあります。 グローバルロックにより、一度に
  行われる呼び出しは一つだけになります。

* "tkinter" では、専用のインタープリタを持つ "Tk" オブジェクトを複数作
  成できますが、同一スレッド内のすべてのインタープリタはイベントキュー
  を共有するため、すぐに扱いが難しくなります。 実際には、"Tk" のインス
  タンスを同時に複数作らないでください。 複数作るなら、別々のスレッド
  で作成し、スレッドに対応した Tcl/Tk ビルドを使うことを推奨します。

* Tcl インタープリタがイベントループに戻れなくなる原因は、ブロックする
  イベントハンドラーだけではありません。 複数のイベントループを入れ子
  で実行したり、イベントループを完全に抜けたりすることも可能です。 イ
  ベントやスレッドについて込み入った処理をする場合は、こうした可能性を
  考慮してください。

* "tkinter" の一部の関数は、現在、Tcl インタープリタを作成したスレッド
  から呼び出した場合にしか動作しません。


便利なリファレンス
==================


オプションの設定
----------------

オプションは、色やウィジェットの境界線幅などを制御します。オプションの
設定には三通りの方法があります:

オブジェクト生成時、キーワード引数を使用する
      fred = Button(self, fg="red", bg="blue")

オブジェクト生成後、オプション名を辞書インデックスのように扱う
      fred["fg"] = "red"
      fred["bg"] = "blue"

オブジェクト生成後に、config()メソッドを使って複数の属性を更新する
      fred.config(fg="red", bg="blue")

注釈:

  ここで使っている "fg" や "bg" など、ウィジェットの外観を制御するオプ
  ションは、従来の "tkinter" ウィジェットのものです。 冒頭で推奨した、
  テーマを利用する "tkinter.ttk" ウィジェットでは受け付けません。 こち
  らの外観は "ttk.Style" クラスで設定してください。 前述の 3 通りのオ
  プションの設定方法は、どちらのウィジェット群にも適用できます。

オプションとその振る舞いに関する詳細な説明は、該当するウィジェットの
Tk の man ページを参照してください。

man ページには、各ウィジェットの "STANDARD OPTIONS (標準オプション)"
と "WIDGET SPECIFIC OPTIONS (ウィジェット固有のオプション)" がリストさ
れていることに注意してください。前者は多くのウィジェットに共通のオプシ
ョンのリストで、後者は特定のウィジェットに特有のオプションです。標準オ
プションの説明は man ページの *options(3)* にあります。

このドキュメントでは、標準オプションとウィジェット固有のオプションを区
別していません。オプションによっては、ある種のウィジェットに適用できま
せん。あるウィジェットがあるオプションに対応しているかどうかは、ウィジ
ェットのクラスによります。例えばボタンには "command" オプションがあり
ますが、ラベルにはありません。

The options supported by a given widget are listed in that widget's
man page, or can be queried at runtime by calling the "config()"
method without arguments, or by calling the "keys()" method on that
widget. The return value of these calls is a dictionary whose key is
the name of the option as a string (for example, "'relief'") and whose
values are 5-tuples.

"bg" のように、長い名前の共通オプションの別名になっているオプションも
あります ("bg" は "background" の略です)。

+---------+-----------------------------------+----------------+
| インデ  | 意味                              | 使用例         |
| ックス  |                                   |                |
|=========|===================================|================|
| 0       | オプション名                      | "'relief'"     |
+---------+-----------------------------------+----------------+
| 1       | データベース検索用のオプション名  | "'relief'"     |
+---------+-----------------------------------+----------------+
| 2       | データベース検索用のオプションク  | "'Relief'"     |
|         | ラス                              |                |
+---------+-----------------------------------+----------------+
| 3       | デフォルト値                      | "'raised'"     |
+---------+-----------------------------------+----------------+
| 4       | 現在の値                          | "'groove'"     |
+---------+-----------------------------------+----------------+

以下はプログラム例です:

   >>> print(fred.config())
   {'relief': ('relief', 'relief', 'Relief', 'raised', 'groove')}

もちろん、実際に出力される辞書には利用可能なオプションが全て表示されま
す。上の表示例は単なる例にすぎません。


ジオメトリ管理
--------------

ウィジェットを作成しただけでは表示されません。 *ジオメトリマネージャー
* に渡して初めて表示されます。 ジオメトリマネージャーは、コンテナー内
でのウィジェットのサイズと位置を決め、コンテナーのサイズや内容の変更に
応じて配置を更新します。 ジオメトリマネージャーの呼び出し忘れは、よく
ある初歩的な間違いです。 ウィジェットは作成されているのに、何も表示さ
れません。

Tk には 3 つのジオメトリマネージャーがあります。 すべてのウィジェット
がそれぞれを継承しているため、どのウィジェットにもどのマネージャーでも
使えます (ただし、grid と pack の非互換性について、以下の警告を参照し
てください)。 どれを使うかは、実現したい配置によって決まります。

"grid"
   行と列からなる 2 次元の表にウィジェットを配置します。 最も柔軟なマ
   ネージャーで、まず検討すべきものです。 複数のフレームを入れ子にする
   必要があるような配置も、一つのグリッドで表せることが多く、余分なス
   ペースをどの行や列に割り当てるかも指定できます。

      ttk.Label(frm, text="Name:").grid(column=0, row=0, sticky="w")
      ttk.Entry(frm).grid(column=1, row=0)
      ttk.Button(frm, text="OK").grid(column=1, row=1, sticky="e")

"pack"
   コンテナーの一辺、すなわち ""top"" (デフォルト)、""bottom""、
   ""left""、""right"" に沿ってウィジェットを並べます。 また、残りのス
   ペースを埋めるように配置したり、拡張したりできます。 ウィジェットを
   一行または一列に並べる場合や、ツールバーとステータスバーで内容領域
   を挟む場合など、単純な配置に便利です。

      toolbar.pack(side="top", fill="x")
      status.pack(side="bottom", fill="x")
      body.pack(side="left", expand=True, fill="both")

"place"
   画面上の絶対距離、またはコンテナーのサイズに対する割合で、各ウィジ
   ェットの位置を明示的に指定します。 最も細かく制御できますが、自動で
   行われる処理は最も少なく、使用頻度も最も低いマネージャーです。 ウィ
   ジェットを重ねたり、独自の配置を精密に指定したりする特殊な用途に適
   しています。

      background.place(x=0, y=0, relwidth=1.0, relheight=1.0)
      badge.place(relx=1.0, rely=0.0, anchor="ne")

配置は入れ子にして組み立てます。 フレームやトップレベルウィンドウの中
に、フレームを含むウィジェットを grid や pack で配置します。 トップレ
ベルウィンドウは OS のウィンドウマネージャーが管理します。 従来のウィ
ジェットも、テーマを利用する "tkinter.ttk" ウィジェットも、同じように
管理できます。

警告:

  同じコンテナーに属する 2 つのウィジェットに、それぞれ "pack()" と
  "grid()" を適用しないでください。 両マネージャーのサイズ調整の方法に
  は互換性がなく、互いにコンテナーのサイズ変更を繰り返して、アプリケー
  ションが応答しなくなることがあります。 併用するには、各マネージャー
  が管理するウィジェットを別々のフレームに入れてください。

各マネージャーが受け付けるすべてのオプションと、その値やデフォルト値は
、"Grid.grid_configure()"、"Pack.pack_configure()"、
"Place.place_configure()" に記載されています。 *grid(3tk)*、
*pack(3tk)*、*place(3tk)* の man ページも参照してください。


ウィジェットと変数の連携
------------------------

一部のウィジェットは、現在の値をプログラムの変数に直接結び付けて、互い
に同期させることができます。 "variable"、"textvariable"、"value"、
"onvalue"、"offvalue" などのオプションでこの対応を設定します。 ユーザ
ーがウィジェットを変更すると変数が更新され、変数の値を設定するとウィジ
ェットがそれに合わせて再描画されます。

ウィジェットに結び付けられるのは "Variable" オブジェクトだけで、通常の
Python 変数は使えません。 これは "tkinter" の制約ではなく、2 つの言語
の違いによるものです。 連携には値が変わるたびに Tcl に通知する仕組みが
必要ですが、Python には通常の変数への再代入に反応する方法がありません
。 "Variable" は、Tcl インタープリタ内に値を保持し、明示的な "get()"
メソッドと "set()" メソッドを通じてアクセスさせることで、この問題を回
避します。

一般的な型には、"StringVar"、"IntVar"、"DoubleVar"、"BooleanVar" とい
うサブクラスが用意されています。 いずれかをウィジェットの
"textvariable" (または "variable") オプションに渡し、"get()" と
"set()" で値を読み書きすれば、それ以外に何もしなくてもウィジェットが追
従します。

ウィジェットが変数を使っている間は、例えば属性として保存するなどして、
変数への参照を保持してください。 "Variable" がガベージコレクションされ
ると、対応する Tcl 変数が削除され、ウィジェットとの結び付きが失われま
す ("Variable" を参照)。

例えば:

   import tkinter as tk
   from tkinter import ttk

   root = tk.Tk()

   # アプリケーションの変数を作成し、初期値を設定する。
   contents = tk.StringVar(value="this is a variable")

   # 入力ウィジェットが変数に追従するようにする。
   entry = ttk.Entry(root, textvariable=contents)
   entry.pack()

   # ユーザーが Return を押すたびに現在の値を表示する。
   def print_contents(event):
       print("The current entry content is:", contents.get())

   entry.bind("<Return>", print_contents)

   # プログラムから変数を設定しても、同じ仕組みで入力ウィジェットが更新される。
   def clear():
       contents.set("")

   ttk.Button(root, text="Clear", command=clear).pack()

   root.mainloop()


ウィンドウマネージャー
----------------------

*ウィンドウマネージャー* はデスクトップの一部で、各トップレベルウィン
ドウの周囲に描かれるタイトルバー、境界、操作部品や、タイトル、位置、サ
イズ、アイコンなどを管理します。 Tk は "Wm" ミックスインを通じてこれら
へのアクセスを提供し、"Tk" ルートウィンドウとすべての "Toplevel" がこ
れを継承します。 そのため、トップレベルウィンドウに対して直接ウィンド
ウマネージャーのメソッドを呼び出します。 各メソッドには短い名前と、そ
れと等価な "wm_" 接頭辞付きの名前があります。 例えば "title()" と
"wm_title()" です。

これらのメソッドは、内容が従来のウィジェットで作られていても、テーマを
利用する "tkinter.ttk" ウィジェットで作られていても、トップレベルウィ
ンドウを操作します。 任意のウィジェットを含むトップレベルウィンドウを
取得するには、そのウィジェットの "winfo_toplevel()" メソッドを呼び出し
ます。

例えば:

   import tkinter as tk
   from tkinter import ttk

   root = tk.Tk()
   root.title("My Application")
   root.geometry("640x480")
   root.minsize(320, 240)

   ttk.Label(root, text="Hello").pack(padx=20, pady=20)

   root.mainloop()

ウィンドウマネージャーの全メソッドについては "Wm" を参照してください。


Tk オプションのデータ型
-----------------------

リファレンスに記載された多くのウィジェットオプションは、ここで説明する
少数の共通の型の値を受け付けます。 標準オプションとその型は
*options(3tk)* のマニュアルページに記載されています。

anchor
   有効な値は方角を表す ""n""、""ne""、""e""、""se""、""s""、""sw""、
   ""w""、""nw"" と、""center"" です。 "LabelFrame" と
   "ttk.LabelFrame" の *labelanchor* オプションは、""en""、""es""、
   ""wn""、""ws"" も受け付けます。 grid ジオメトリマネージャーの
   *sticky* オプションは、""nsew"" のような方角の組み合わせや、空文字
   列を受け付けます。

bitmap
   名前付きの組み込みビットマップが 10 個あります。 "'error'"、
   "'gray12'"、"'gray25'"、"'gray50'"、"'gray75'"、"'hourglass'"、
   "'info'"、"'questhead'"、"'question'"、"'warning'" です。 macOS で
   はさらに、"'application'"、"'accessory'"、"'folder'"、"'pfolder'"、
   "'trash'"、"'floppy'"、"'ramdisk'"、"'cdrom'"、"'preferences'"、
   "'querydoc'"、"'stop'"、"'note'"、"'caution'" が使えます。 X ビット
   マップファイルを指定するには、""@/usr/contrib/bitmap/gumby.bit"" の
   ように、ファイルの絶対パスの先頭に "@" を付けます。

boolean
   整数の 0 または 1、"True" または "False"、文字列の ""0""、""1""、
   ""yes""、""no""、""true""、""false""、""on""、""off"" を渡せます。
   文字列は大文字と小文字を区別せず、""t"" のように曖昧でなければ先頭
   の一部だけでも構いません。 ゼロ以外の整数はすべて真を表します。

callback
   任意の呼び出し可能オブジェクトです。 ほとんどのコールバックは引数を
   取りません。 例えば、次のようにします。

      def print_it():
          print("hi there")
      fred["command"] = print_it

   "Scale" の *command* オプションのように、引数を渡して呼び出すオプシ
   ョンもあります。 この例では新しい値が渡されます。

color
   色は ""red"" や ""light blue"" などの名前、または RGB 値を表す文字
   列で指定できます。 RGB 値は 4 ビットの ""#RGB""、8 ビットの
   ""#RRGGBB""、12 ビットの ""#RRRGGGBBB""、16 ビットの
   ""#RRRRGGGGBBBB"" という形式で、R、G、B はそれぞれ任意の有効な 16
   進数字を表します。 Tk はすべてのプラットフォームで使える共通の色名
   を提供しています。 大文字と小文字、空白を区別しないため、""light
   blue""、""Light Blue""、""lightblue"" は同じ色です。 現在のシステム
   カラーを表すプラットフォーム固有の名前 (Windows の
   ""systemButtonFace"" や macOS の ""systemWindowBody"" など) も含め
   、名前の全一覧は *colors(3tk)* のマニュアルページに記載されています
   。 "winfo_rgb()" は色の赤、緑、青の成分を返します。

compound
   ウィジェットに表示する画像とテキストをどのように組み合わせるかを指
   定します。 有効な値は ""none"" (画像があれば画像、なければテキスト
   を表示)、""text""、""image""、""center"" (画像の中央にテキストを表
   示)、 ""top""、""bottom""、""left""、""right"" (テキストの上、下、
   左、右に画像を表示) です。 テーマを利用するウィジェットはすべての値
   を受け付け、従来のウィジェットは ""text"" と ""image"" 以外を受け付
   けます。

cursor
   ポインターがウィジェット上にある間に表示するマウスカーソルの名前で
   す。 Tk はすべてのプラットフォームで使える共通のカーソル名
   (""arrow""、""watch""、""cross""、""hand2"" など) を提供しています
   。 "cursorfont.h" の標準 X カーソル名も、"XC_" 接頭辞を除いて使えま
   す ("XC_hand2" は ""hand2"" になります)。 プラットフォーム固有の名
   前を含む全一覧は *cursors(3tk)* のマニュアルページに記載されていま
   す。 独自のビットマップとマスクのファイルも指定できます。 Windows
   では、""@C:/cursors/bart.ani"" のようにパスの先頭に "@" を付けて、
   カーソルファイル (".cur" または ".ani") を直接使うこともできます。

distance
   スクリーン上の距離をピクセルか絶対距離のどちらかで指定できます。ピ
   クセルは数値として与えられ、絶対距離は文字列として与えられます。絶
   対距離を表す文字列は、単位を表す終了文字 (センチメートルには "c" 、
   インチには "i" 、ミリメートルには "m" 、プリンタのポイントには "p")
   を伴います。例えば、3.5インチは ""3.5i"" と表現します。

font
   Tk は "{courier 10 bold}" のようなフォント指定を使います。
   "tkinter" では、"(family, size, *styles)" というタプル (または等価
   な文字列 ""Courier 10 bold"") で渡すのが自然です。 フォントサイズは
   、正の数ならポイント単位、負の数ならピクセル単位です。
   ""TkDefaultFont"" などの名前付きフォントの名前、"tkinter.font.Font"
   インスタンス、X11 では XLFD フォント名も使えます。

justify
   有効な値は文字列 ""left""、""center""、""right"" です。

orient
   有効な値は ""horizontal"" と ""vertical"" です。

padding
   前述の有効な距離を指定すると全辺に適用されます。 または、左、上、右
   、下の余白を表す、最大 4 つの距離のシーケンスを指定します。 4 つ未
   満の場合は、下の余白は上、右は左、上は左と同じ値がデフォルトになり
   ます。 テーマを利用するウィジェットだけがサポートしています。

region
   "Canvas" の *scrollregion* オプションで使います。 空白で区切った 4
   つの要素を含む文字列、または 4 要素のシーケンスで、各要素は前述の有
   効な距離です。 例えば ""2 3 4 5""、"(2, 3, 4, 5)"、""3i 2i 4.5i
   2i""、""3c 2c 4c 10.43c"" は、どれも有効な領域指定です。

relief
   ウィジェットの境界のスタイルを決めます。 有効な値は ""raised""、
   ""sunken""、""flat""、""groove""、""ridge""、""solid"" です。

scrollcommand
   これはほとんどの場合スクロールバーウィジェットの "set()" メソッドで
   すが、1 個の引数を取る任意のウィジェットのメソッドも指定できます。

state
   有効な値は ""normal""、""disabled"" で、ウィジェットによっては
   ""active""、""hidden"" ("Canvas" の項目)、 ""readonly"" ("Entry"、
   "Spinbox"、テーマを利用するウィジェット) も使えます。 テーマを利用
   するウィジェットには、さらに汎用的な状態群があり、
   "ttk.Widget.state" で操作します。

wrap
   "Text" ウィジェットとそのタグでは ""none""、""char""、""word"" のい
   ずれかでなければなりません。 タグに空文字列を指定すると、ウィジェッ
   トの値を使います。


バインディングとイベント
------------------------

ウィジェットコマンドからの bind メソッドによって、あるイベントを待つこ
とと、そのイベント型が起きたときにコールバック関数を呼び出すことができ
るようになります。 bind メソッドの形式は:

   def bind(self, sequence, func, add=''):

ここでは:

sequence
   対象のイベントの種類を表す文字列です。 物理イベントは "<modifier-
   modifier-type-detail>" という形式 (例えば ""<Enter>"" や
   ""<Control-Button-1>"") で指定し、 アプリケーションで定義する仮想イ
   ベントは ""<<Paste>>"" のように二重の山括弧を使います。 (詳しくは
   *bind(3tk)* の man ページを参照してください。 )

func
   は一引数を取り、イベントが起きるときに呼び出される Python 関数です
   。イベント・インスタンスが引数として渡されます。 (このように実施さ
   れる関数は、一般に *callbacks* として知られています。)

add
   はオプションで、 "''" か "'+'" のどちらかです。空文字列を渡すことは
   、このイベントが関係する他のどんなバインドをもこのバインドが置き換
   えることを意味します。 "'+'" を使う仕方は、この関数がこのイベント型
   にバインドされる関数のリストに追加されることを意味しています。

例えば:

   def turn_red(self, event):
       event.widget["activeforeground"] = "red"

   self.button.bind("<Enter>", self.turn_red)

イベントのウィジェットフィールドが "turn_red()" コールバック内でどのよ
うにアクセスされているかに注目してください。このフィールドは X イベン
トを捕らえたウィジェットを含んでいます。以下の表はアクセスできる他のイ
ベントフィールドとそれらの Tk での表現方法の一覧です。Tk man ページを
参照するときに役に立つでしょう。

+------+-----------------------+------+-----------------------+
| Tk   | Tkinter イベントフィ  | Tk   | Tkinter イベントフィ  |
|      | ールド                |      | ールド                |
|======|=======================|======|=======================|
| %f   | focus                 | %A   | char                  |
+------+-----------------------+------+-----------------------+
| %h   | "height"              | %E   | send_event            |
+------+-----------------------+------+-----------------------+
| %k   | keycode               | %K   | keysym                |
+------+-----------------------+------+-----------------------+
| %s   | state                 | %N   | keysym_num            |
+------+-----------------------+------+-----------------------+
| %t   | time                  | %T   | type                  |
+------+-----------------------+------+-----------------------+
| %w   | "width"               | %W   | widget                |
+------+-----------------------+------+-----------------------+
| %x   | x                     | %X   | x_root                |
+------+-----------------------+------+-----------------------+
| %y   | y                     | %Y   | y_root                |
+------+-----------------------+------+-----------------------+
| %#   | serial                | %b   | num                   |
+------+-----------------------+------+-----------------------+
| %d   | detail                | %D   | delta                 |
+------+-----------------------+------+-----------------------+

前述の "add" 引数が影響するのは、自分で設定したバインディングだけです
。 すべてのウィジェットは、標準の動作を実装する *クラスバインディング*
も継承します。 例えば "Text" ウィジェットは "Control"-"t" に 2 文字を
入れ替える操作を割り当てています。 これらはウィジェットの Tk man ペー
ジ (*text(3tk)* や *entry(3tk)* など) のバインディングの節で説明されて
います。

クラスバインディングは自分で設定したものとは別に処理されるため、イベン
トを自分でバインドしてもデフォルトの動作は置き換わらず、両方が実行され
ます。 不要なデフォルトのバインディングを抑止するには、ウィジェットに
イベントをバインドし、コールバックから文字列 ""break"" を返してくださ
い。


index 引数
----------

多くのウィジェットにはパラメータ "index" を渡す必要があります。これら
はテキストウィジェット内の特定の位置や、エントリウィジェット内の特定の
文字、あるいはメニューウィジェット内の特定のメニューアイテムを指定する
ために使用されます。

エントリウィジェットのインデックス(インデックス、ビューインデックスな
ど)
   Entry ウィジェットには、表示中のテキストの文字位置を参照するメソッ
   ドやオプションがあります。 インデックスが必要なところでは、次の値を
   渡せます。

   * テキストの先頭を 0 として数えた文字の位置を表す整数。

   * 文字列 ""anchor""。 選択範囲のメソッドで設定された、選択の起点を
     表します。

   * 文字列 ""end""。 最後の文字の直後の位置を表します。

   * 文字列 ""insert""。 挿入カーソルの直後の文字を表します。

   * 文字列 ""sel.first"" と ""sel.last""。 選択範囲の最初の文字と、最
     後の文字の直後の位置を表します (選択範囲がないときに使うとエラー
     になります)。

   * ""@6"" のような、"@" に整数を続けた文字列。 整数は入力ウィジェッ
     トの座標系における x 座標 (ピクセル単位) と解釈され、その位置にあ
     る文字を選びます。

テキストウィジェットのインデックス
   テキストウィジェットに対するインデックス記法はとても機能が豊富で、
   Tk manページでよく説明されています。

メニューのインデックス(menu.invoke()、menu.entryconfig()など)
   メニューに対するいくつかのオプションとメソッドは特定のメニュー項目
   を操作します。メニューインデックスはオプションまたはパラメータのた
   めに必要とされるときはいつでも、以下のものを渡すことができます:

   * ウィジェット内の項目の位置を、上から 0 を起点に数えた整数。

   * 文字列 ""active""。現在カーソルがあるメニューの位置を指します。

   * 文字列 ""last"" 。最後のメニューを指します。

   * ""@6"" のような、"@" に整数を続けた文字列。 整数はメニューの座標
     系における y 座標 (ピクセル単位) と解釈されます。

   * 文字列 ""none"" は、どのメニュー項目も指さないことを示します。 通
     常、すべての項目のアクティブ状態を解除するために
     "menu.activate()" とともに使用します。 最後に、

   * メニューの上から下へ順に、項目のラベルとのパターンマッチングに使
     うテキスト文字列。 このインデックス形式は、他のすべての形式を調べ
     た後に考慮されます。 そのため、"last"、"active"、"none" というラ
     ベルを持つ項目を指定するつもりでも、代わりに前述の特別な値として
     解釈されることがあります。


画像
----

様々な形式の画像を、それに対応する "tkinter.Image" のサブクラスを使っ
て作成できます:

* XBM 形式の画像のための "BitmapImage" 。

* PGM, PPM, GIF, PNG 形式の画像のための "PhotoImage" 。 最後のは Tk
  8.6 からサポートされるようになりました。

画像のどちらの型でも "file" または "data" オプションを使って作られます
(その上、他のオプションも利用できます)。

バージョン 3.13 で変更: 画像の一部を別の画像にコピーする "PhotoImage"
の "copy_replace()" メソッドが追加されました。 必要に応じてピクセルの
拡大や間引きもできます。 "PhotoImage" の "copy()"、"zoom()"、
"subsample()" メソッドに *from_coords* 引数が追加されました。
"PhotoImage" の "copy()" メソッドに *zoom* と *subsample* 引数が追加さ
れました。

画像オブジェクトは、ラベル、ボタン、メニューなど、"image" オプションを
サポートするウィジェットで使えます。 この場合、Tk は画像への参照を保持
しません。 画像オブジェクトへの最後の Python の参照が削除されると、画
像データも削除され、画像を使っていたすべての場所に空の枠が表示されます
。

参考: Pillow パッケージを使うと、BMP、JPEG、TIFF、WebP などの形式もサポー
    トされます。


リファレンス
============

この節では "tkinter" モジュールのクラス、メソッド、関数、定数を説明し
ます。 ほとんどは Tcl/Tk コマンドをラップしています。 ウィジェットのオ
プションの全一覧や、さらに詳しい情報については、公式の Tcl/Tk マニュア
ルページを参照してください。

exception tkinter.TclError

   Tcl インタープリタの呼び出しが失敗したときに送出される例外です。 例
   えば、ウィジェットに未知のオプションや無効な値を与えた場合に送出さ
   れます。


基底クラスとミックスインクラス
------------------------------

class tkinter.Misc

   "Misc" クラスは、"Tk" と、"BaseWidget" を通じてすべてのウィジェット
   が継承するミックスインです。 ウィンドウ情報の取得、イベントのバイン
   ディングとイベントループの管理、キーボードフォーカスとポインターの
   グラブの制御、選択範囲・クリップボード・オプションデータベースへの
   アクセス、その他の各種ユーティリティや内部情報の取得など、すべての
   Tk オブジェクトに共通する多くのメソッドを提供します。 これらは継承
   されるため、すべてのウィジェットと "Tk" アプリケーションオブジェク
   トで使えます。 各ウィジェットについて繰り返し説明する代わりに、ここ
   でまとめて説明します。

   cget(key)

      Return the current value of the configuration option named *key*
      for this widget, as a string. The expression "widget[key]" is
      equivalent and may be used instead.

   configure(cnf=None, **kw)

      Query or modify the configuration options of the widget. With no
      arguments, return a dictionary mapping every available option
      name to a tuple describing it (its name, X resource name, X
      resource class, default value and current value). If a single
      option name is given as a string, return the tuple for just that
      option. If one or more keyword arguments are given, or a
      dictionary is passed as *cnf*, set each named option to the
      corresponding value; the expression "widget[key] = value" sets a
      single option in the same way.

      "config()" は "configure()" の別名です。

   keys()

      このウィジェットのすべての設定オプションの名前をリストで返します
      。

   getboolean(s)

      文字列 *s* を Tcl の真偽値として解釈し、対応する "bool" を返しま
      す。 Tcl は "'1'"、"'0'"、"'yes'"、"'no'"、"'true'"、"'false'"、
      "'on'"、"'off'" などを受け付けます。 *s* が有効な真偽値でなけれ
      ば "ValueError" を送出します。

   getdouble(s)

      文字列 *s* を Tcl の浮動小数点数として解釈し、"float" として返し
      ます。 *s* が有効な数値でなければ "ValueError" を送出します。

      Added in version 3.5.

   getint(s)

      文字列 *s* を Tcl の整数として解釈し、"int" として返します。 *s*
      が有効な整数でなければ "ValueError" を送出します。

   getvar(name)

      名前が *name* の Tcl グローバル変数の値を返します。

   setvar(name, value)

      名前が *name* の Tcl グローバル変数を *value* に設定します。

      "getvar()" と "setvar()" は、Tcl 変数に直接アクセスするメソッド
      です。 通常のコードでは、代わりに "StringVar" や "IntVar" などの
      "Variable" サブクラスを使います。 これらは Tcl 変数をラップし、
      Python の型との間で値を変換します。

   register(func, subst=None, needcleanup=1)

      Python の呼び出し可能オブジェクト *func* を Tcl コマンドとして登
      録し、新しいコマンドの名前を文字列で返します。 Tcl がそのコマン
      ドを呼び出すたびに *func* が呼び出されます。 *subst* が指定され
      ている場合は、まずコマンドの引数に適用されます。 これが、Python
      のコールバックを *command* などの Tk オプションに渡すコマンド名
      に変換するために、内部で使われる仕組みです。 *needcleanup* が偽
      でなければ、ウィジェットが破棄されるとコマンドも自動的に削除され
      ます。

      バージョン 3.13 で変更: *func* に渡す引数が文字列に変換されなく
      なりました。

   deletecommand(name)

      名前が *name* の Tcl コマンドを削除します。 例えば、以前に
      "register()" が返した名前を指定できます。

   nametowidget(name)

      Tk のパス名 *name* に対応するウィジェットのインスタンスを返しま
      す。

   send(interp, cmd, *args)

      指定された *args* を付けて Tcl コマンド *cmd* を、*interp* とい
      う名前で登録された Tcl インタープリタに送り、結果を返します。 す
      べてのプラットフォームで利用できるわけではありません。

   destroy()

      このウィジェットとすべての子孫ウィジェットを破棄し、それらに対応
      する Tcl コマンドを削除します。

   tkraise(aboveThis=None)

      このウィジェットを重なり順の手前に移動し、兄弟ウィジェットより前
      に描画されるようにします。 *aboveThis* を指定した場合は、代わり
      にその直前の重なり順に移動します。

      "lift()" は "tkraise()" の別名です。

   lower(belowThis=None)

      このウィジェットを重なり順の奥に移動し、兄弟ウィジェットより後ろ
      に描画されるようにします。 *belowThis* を指定した場合は、代わり
      にその直後の重なり順に移動します。

      "tkraise()"/"lift()" と "lower()" は "Canvas" ウィジェットでオー
      バーライドされ、代わりにキャンバス上の項目の重なり順を変更します
      。

   image_names()

      Tcl インタープリタに現在存在するすべての画像の名前を返します。

      このメソッドは "Text" ウィジェットでオーバーライドされ、その
      "image_names()" は代わりに埋め込まれた画像の名前を返します。

   image_types()

      "'photo'" や "'bitmap'" など、利用できる画像の種類を返します。

   grid_anchor(anchor=None)

      このコンテナーがグリッドより大きく、すべての行と列の重みがゼロで
      ある場合に、コンテナー内のどこにグリッドを配置するかを制御するア
      ンカーを設定します。 *anchor* は "'nw'" (デフォルト) や
      "'center'" など、通常のアンカー文字列です。 引数なしで呼び出した
      場合は何もしません。

      "anchor()" は "grid_anchor()" の別名です。

      Added in version 3.3.

   grid_bbox(column=None, row=None, col2=None, row2=None)

      Return the bounding box, in pixels, of a region of the grid laid
      out in this container, as a 4-tuple "(xoffset, yoffset, width,
      height)". With no arguments the bounding box of the whole grid
      is returned. If *column* and *row* are given, the box spans from
      the cell at row and column 0 to that cell; if *col2* and *row2*
      are also given, it spans from the cell (*column*, *row*) to the
      cell (*col2*, *row2*).

      "bbox()" は "grid_bbox()" の別名です。 ただし、"Canvas"、
      "Listbox"、"Spinbox"、"Text"、"ttk.Entry"、"ttk.Treeview" は、独
      自の "bbox()" メソッドを提供します。

   grid_columnconfigure(index, cnf={}, **kw)

      このコンテナーが管理するグリッドの、*index* で指定した列のプロパ
      ティを取得または設定します。 *index* には列番号を指定できます。
      オプションを設定する場合は、列番号のリスト、すべての列に適用する
      文字列 "'all'"、またはその子ウィジェットが占める列に適用するため
      の子ウィジェットも指定できます。 サポートするオプションは次のと
      おりです。

      *minsize*
         列の最小サイズ (ピクセル単位)。

      *weight*
         余分なスペースを列に割り当てる比率を設定する整数です。 重みが
         "0" の列は要求されたサイズのままです。 重みが 2 の列は、重み
         が 1 の列の 2 倍の割合で広がります。

      *uniform*
         均等化グループの名前です。 同じ空でないグループ名を持つ列のサ
         イズは、重みに厳密に比例するように保たれます。

      *pad*
         列のサイズを計算するときに、列内の最も大きいウィジェットに加
         える余分なスペース (ピクセル単位)。

      オプション名を一つ指定すると、そのオプションの値を返します。 オ
      プションを指定しなければ、すべてのオプションを辞書で返します。

      "columnconfigure()" は "grid_columnconfigure()" の別名です。

   grid_rowconfigure(index, cnf={}, **kw)

      このコンテナーが管理するグリッドの、*index* で指定した行のプロパ
      ティを取得または設定します。 *index* の解釈と、サポートするオプ
      ション (*minsize*、*weight*、*uniform*、*pad*) は
      "grid_columnconfigure()" と同じですが、列ではなく行に適用されま
      す。

      "rowconfigure()" は "grid_rowconfigure()" の別名です。

   grid_location(x, y)

      このコンテナーからの相対位置 (*x*, *y*) をピクセル単位で指定し、
      その位置を含むグリッドのセルの "(column, row)" を返します。 グリ
      ッドより上または左の位置では、対応する座標として "-1" を返します
      。

   grid_propagate()
   grid_propagate(flag)

      grid ジオメトリマネージャーで子ウィジェットを管理するときに、こ
      のコンテナーへのサイズの伝播を有効または無効にします。 *flag* が
      真の場合、コンテナーは子ウィジェットが要求するサイズに合うように
      自身のサイズを変更します。 偽の場合は、コンテナーのサイズは自分
      で制御します。 引数なしで呼び出すと、現在の設定を真偽値で返しま
      す。

   grid_size()

      このコンテナーが管理するグリッドのサイズを "(columns, rows)" タ
      プルで返します。

      "size()" は "grid_size()" の別名です。 ただし、"Listbox" ウィジ
      ェットは独自の "size()" メソッドを提供します。

   grid_slaves(row=None, column=None)

      このコンテナーのグリッドで管理する子ウィジェットのリストを、最後
      に管理対象になったものから順に返します。 *row* または *column*
      を指定すると、その行または列の子だけを返します。

   grid_content(row=None, column=None)

      "grid_slaves()" と同じです。 このコンテナーのグリッドで管理する
      子ウィジェットを返します。 *row* または *column* を指定して、特
      定の行または列に限定することもできます。

      Added in version 3.15.

   pack_propagate()
   pack_propagate(flag)

      pack ジオメトリマネージャーで子ウィジェットを管理するときに、こ
      のコンテナーへのサイズの伝播を有効または無効にします。 *flag* が
      真の場合、コンテナーは子ウィジェットが要求するサイズに合うように
      自身のサイズを変更します。 偽の場合は、コンテナーのサイズは自分
      で制御します。 引数なしで呼び出すと、現在の設定を真偽値で返しま
      す。

      "propagate()" は "pack_propagate()" の別名です。

   pack_slaves()

      このコンテナーが pack ジオメトリマネージャーで管理する子ウィジェ
      ットのリストを、pack で配置される順に返します。

      "slaves()" は "pack_slaves()" の別名です。

   pack_content()

      "pack_slaves()" と同じです。 このコンテナーが pack ジオメトリマ
      ネージャーで管理する子ウィジェットを、pack で配置される順に返し
      ます。

      "content()" は "pack_content()" の別名です。

      Added in version 3.15.

   place_slaves()

      このコンテナーが place ジオメトリマネージャーで管理する子ウィジ
      ェットのリストを返します。

   place_content()

      "place_slaves()" と同じです。 このコンテナーが place ジオメトリ
      マネージャーで管理する子ウィジェットを返します。

      Added in version 3.15.

   "bind" と "unbind" で始まるメソッドは、イベントパターンとコールバッ
   クを関連付けたり、その関連付けを解除したりします。

   bind(sequence=None, func=None, add=None)

      このウィジェットのイベントパターン *sequence* に、呼び出し可能オ
      ブジェクト *func* をバインドします。

      *sequence* は "'<Button-1>'" (マウスクリック) や
      "'<KeyPress-a>'" などのイベントパターンです。 短い間隔で続けて発
      生する必要がある複数のパターンを連結することもできます。 イベン
      トが発生すると、その内容を表す "Event" インスタンスを唯一の引数
      として *func* が呼び出されます。 *func* が文字列 "'break'" を返
      すと、そのイベントの残りのバインディングは呼び出されません。

      *add* が真の場合、*sequence* にすでにバインドされている関数に
      *func* を追加します。 そうでなければ、それらを置き換えます。 こ
      のバインディングは、このウィジェットだけに適用されます。

      "bind()" は文字列の識別子 (*funcid*) を返します。 後でこれを
      "unbind()" に渡すと、対応する Tcl コマンドを残すことなくバインデ
      ィングを解除できます。

      If *func* is omitted, return the binding currently associated
      with *sequence*; if *sequence* is also omitted, return a list of
      all the sequences for which bindings exist on this widget.

   bind_class(className, sequence=None, func=None, add=None)

      "bind()" と似ていますが、単一のウィジェットではなく、バインディ
      ングタグ *className* に *func* をバインドします。 そのタグを持つ
      すべてのウィジェットに適用されます。 *className* は通常
      "'Button'" のようなウィジェットクラスの名前で、この場合はそのク
      ラスのすべてのウィジェットに影響します。 ウィジェットのバインデ
      ィングタグは "bindtags()" で確認・変更できます。

      残りの引数と戻り値は "bind()" と同じです。

   bind_all(sequence=None, func=None, add=None)

      "bind()" と似ていますが、特別なバインディングタグ "'all'" に
      *func* をバインドし、アプリケーション内のすべてのウィジェットに
      適用します。

      残りの引数と戻り値は "bind()" と同じです。

   unbind(sequence, funcid=None)

      このウィジェットのイベントパターン *sequence* のバインディングを
      解除します。

      *funcid* を指定すると、その識別子 (以前の "bind()" 呼び出しの戻
      り値) で指定された関数だけを解除し、対応する Tcl コマンドも削除
      します。 そうでなければ、*sequence* のすべてのバインディングを削
      除し、何もバインドされていない状態にします。

      バージョン 3.13 で変更: *funcid* を指定した場合、そのコールバッ
      クだけを解除するようになりました。 *sequence* にバインドされた他
      のコールバックは保持されます。

   unbind_class(className, sequence)

      バインディングタグ *className* から、イベントパターン *sequence*
      のすべてのバインディングを解除します。 "bind_class()" を参照して
      ください。

   unbind_all(sequence)

      特別なバインディングタグ "'all'" から、イベントパターン
      *sequence* のすべてのバインディングを解除します。 "bind_all()"
      を参照してください。

   bindtags(tagList=None)

      *tagList* を省略すると、このウィジェットに対応するバインディング
      タグのタプルを返します。 ウィジェットでイベントが発生すると、そ
      のウィジェットのバインディングタグを順に調べ、各タグについて一致
      する最も具体的なバインディングを実行します。 デフォルトでは、ウ
      ィジェット自身のパス名、ウィジェットクラス、最も近い祖先トップレ
      ベルウィンドウのパス名、"'all'" の順に 4 つのバインディングタグ
      を持ちます。

      *tagList* を指定する場合は、文字列のシーケンスでなければなりませ
      ん。 ウィジェットのバインディングタグをその要素に設定し、その順
      番でバインディングを評価するようにします。

   "event_" で始まるメソッドは、仮想イベントを定義したり、プログラムか
   らイベントを生成したりします。

   event_add(virtual, *sequences)

      "'<<Paste>>'" という形式の名前を持つ仮想イベント *virtual* に、
      *sequences* で指定した各物理イベントパターンを関連付けます。 い
      ずれかが発生するたびに、仮想イベントも発生するようになります。
      *virtual* がすでに定義されている場合は、既存のシーケンスに新しい
      シーケンスを追加します。

   event_delete(virtual, *sequences)

      仮想イベント *virtual* に関連付けられたシーケンスから、
      *sequences* の各要素を削除します。 現在 *virtual* に関連付けられ
      ていないシーケンスは無視します。 *sequences* を指定しなければ、
      すべての物理イベントシーケンスを削除し、*virtual* が発生しなくな
      ります。

   event_generate(sequence, **kw)

      このウィジェットでイベント *sequence* を生成し、ウィンドウシステ
      ムから届いたイベントと同じように処理させます。 *sequence* は
      "'<Button-1>'" や "'<<Paste>>'" のような単一のイベントパターンで
      なければならず、複数を連結してはいけません。 キーワード引数で、
      ポインターの位置を表す *x* や *y*、処理するタイミングを制御する
      *when* など、イベントの追加のフィールドを指定します。 全一覧は
      Tk の "event" マニュアルページを参照してください。

   event_info(virtual=None)

      *virtual* を省略すると、現在定義されているすべての仮想イベントの
      タプルを返します。 *virtual* を指定すると、それに現在関連付けら
      れている物理イベントシーケンスのタプルを返し、未定義なら空のタプ
      ルを返します。

   "after" で始まるメソッドは、一定時間後やアプリケーションがアイドル
   になったときにコールバックを実行するよう予約します。

   after(ms, func=None, *args, **kw)

      *ms* ミリ秒後に、*args* と *kw* を位置引数とキーワード引数として
      渡して、呼び出し可能オブジェクト *func* を呼び出すよう予約します
      。 呼び出しをキャンセルするために "after_cancel()" に渡せる識別
      子を返します。

      *func* を省略すると、代わりに *ms* ミリ秒間スリープし、その間は
      イベントを処理せず、"None" を返します。

      バージョン 3.10 で変更: *func* に、関数以外の任意の呼び出し可能
      オブジェクトも使えるようになりました。

      バージョン 3.14 で変更: キーワード引数が *func* に渡されるように
      なりました。

   after_cancel(id)

      Cancel a callback previously scheduled with "after()" or
      "after_idle()". *id* must be an identifier returned by one of
      those methods; passing a value that is not such an identifier
      raises "ValueError". If the callback has already run or been
      cancelled, this has no effect.

      バージョン 3.7 で変更: *id* に "None" (または任意の偽値) を渡す
      と、"ValueError" を送出するようになりました。

   after_idle(func, *args, **kw)

      次に Tk のメインループがアイドル状態 (他に処理するイベントがない
      状態) になったとき、*args* と *kw* を渡して呼び出し可能オブジェ
      クト *func* を呼び出すよう予約します。 呼び出しをキャンセルする
      ために "after_cancel()" に渡せる識別子を返します。

      バージョン 3.14 で変更: キーワード引数が *func* に渡されるように
      なりました。

   after_info(id=None)

      *id* を省略すると、このインタープリタで "after()" と
      "after_idle()" によって現在予約されている、すべてのコールバック
      の識別子のタプルを返します。

      *id* を指定する場合は、まだ実行もキャンセルもされていないコール
      バックの識別子でなければなりません。 戻り値は "(script, type)"
      というタプルで、*script* は呼び出す関数を指し、*type* は
      "'idle'" または "'timer'" です。 *id* が存在しない場合は
      "TclError" を送出します。

      Added in version 3.13.

   mainloop(n=0)

      Tk のイベントループに入り、すべてのウィンドウが破棄されるまでイ
      ベントを処理します。 通常はアプリケーションを実行するために、ル
      ートウィンドウで一度だけ呼び出します。

   quit()

      Quit the Tcl interpreter, causing "mainloop()" to return.

   update()

      イベントループに入り、アイドル時のコールバックを含め、保留中のす
      べてのイベントを処理します。 画面を最新の状態に更新し、キューに
      入っているイベントを処理してから戻ります。

   update_idletasks()

      イベントループに入り、保留中のすべてのアイドル時のコールバックを
      呼び出します。 例えばサイズや配置の変更後に、ウィンドウの表示を
      更新しますが、ユーザーによって発生したイベントは処理しません。

   wait_variable(name)

      Tcl 変数 *name* が変更されるまで待機します。 その間もイベントの
      処理を続けるため、アプリケーションは応答できます。 *name* は通常
      、"IntVar" や "StringVar" などの "Variable" インスタンスです。

      "waitvar()" は "wait_variable()" の別名です。

   wait_window(window=None)

      イベントの処理を続けながら、*window* が破棄されるまで待機します
      。 *window* を省略すると、このウィジェットを使います。 通常、ユ
      ーザーがダイアログボックスの操作を終えるまで待機するために使いま
      す。

   wait_visibility(window=None)

      イベントの処理を続けながら、画面に初めて現れるときなど、*window*
      の可視性の状態が変わるまで待機します。 *window* を省略すると、こ
      のウィジェットを使います。 通常、新しく作成したウィンドウに対し
      て操作する前に、そのウィンドウが表示されるまで待機するために使い
      ます。

   "focus_" で始まるメソッドは、キーボードフォーカスを管理します。

   focus()

      このウィジェットがあるディスプレイのキーボード入力フォーカスを、
      このウィジェットに移します。 そのディスプレイでアプリケーション
      が現在フォーカスを持っていない場合は、トップレベルウィンドウのフ
      ォーカス先としてこのウィジェットを記録し、次にウィンドウマネージ
      ャーがそのトップレベルにフォーカスを与えたときに、このウィジェッ
      トに移します。 "focus()" は "focus_set()" の別名です。 ただし、
      "Canvas" と "ttk.Treeview" は独自の "focus()" メソッドを提供しま
      す。

   focus_force()

      アプリケーションが、このウィジェットのディスプレイで現在入力フォ
      ーカスを持っていなくても、キーボード入力フォーカスをこのウィジェ
      ットに移します。 このメソッドの使用は極力避けるべきです。 通常、
      アプリケーションは自らフォーカスを奪わず、ウィンドウマネージャー
      が与えるまで待つべきです。

   focus_get()

      アプリケーション内で現在キーボードフォーカスを持つウィジェットを
      返します。 該当するウィジェットがなければ "None" を返します。 複
      数のディスプレイで正しく動作させるには "focus_displayof()" を使
      ってください。

   focus_displayof()

      このウィジェットがあるディスプレイで、現在キーボードフォーカスを
      持つウィジェットを返します。 そのディスプレイでアプリケーション
      内のどのウィジェットもフォーカスを持たなければ "None" を返します
      。

   focus_lastfor()

      このウィジェットと同じトップレベルウィンドウ内で、最後にキーボー
      ドフォーカスを持っていたウィジェットを返します。 次にウィンドウ
      マネージャーがそのトップレベルにフォーカスを与えたとき、このウィ
      ジェットが受け取ります。 そのトップレベル内のどのウィジェットも
      フォーカスを持ったことがない場合や、最後にフォーカスを持ったウィ
      ジェットが削除された場合は、トップレベル自体を返します。

   tk_focusFollowsMouse()

      マウスポインターが入るたびに、そのウィジェットにフォーカスを設定
      する暗黙的なフォーカスモデルを使うように Tk を設定し直します。
      一度有効にすると、簡単には無効にできません。

   tk_focusNext()

      Return the next widget after this one in the keyboard traversal
      order, or "None" if there is none. The traversal order goes
      first to the next child, then recursively to the children of
      that child, and then to the next sibling higher in the stacking
      order. A widget is skipped if its "takefocus" option is set to
      "0". This method is used in the default bindings for the "Tab"
      key.

   tk_focusPrev()

      Return the previous widget before this one in the keyboard
      traversal order, or "None" if there is none. See
      "tk_focusNext()" for how the order is defined. This method is
      used in the default bindings for the "Shift"-"Tab" key.

   "grab_" で始まるメソッドは、すべての入力イベントを単一のウィジェッ
   トに向ける、入力グラブを設定・取得します。

   grab_set()

      このウィジェットにローカルグラブを設定します。 グラブは、ポイン
      ターイベントの対象をこのウィジェットとその子孫に限定します。 ポ
      インターがウィジェットの部分木の外にある間は、ボタンの押下・解放
      とポインターの移動がグラブしたウィジェットに通知され、部分木の外
      のウィンドウはグラブが解除されるまで反応しなくなります。 ローカ
      ルグラブが影響するのは、グラブを行うアプリケーションだけです。
      そのディスプレイで、このアプリケーションが以前設定したグラブは自
      動的に解除されます。 グラブの設定は、ダイアログをモーダルにする
      一般的な方法です。 グラブが有効な間、ユーザーはアプリケーション
      の他のウィンドウを操作できません。

   grab_set_global()

      このウィジェットにグローバルグラブを設定します。 グローバルグラ
      ブは "grab_set()" で設定するローカルグラブに似ていますが、画面上
      の他のすべてのアプリケーションを操作できなくし、このウィジェット
      の部分木だけがポインターイベントに反応するようにします。 キーボ
      ードもグラブします。 解除するまで他のアプリケーションがイベント
      を受け取れなくなるため、グローバルグラブによって簡単にディスプレ
      イを操作不能にしてしまう可能性があります。 注意して使ってくださ
      い。

   grab_release()

      このウィジェットにグラブが設定されていれば解除します。 そうでな
      ければ何もしません。

   grab_current()

      このウィジェットがあるディスプレイで、現在このアプリケーション内
      でグラブを保持しているウィジェットを返します。 該当するウィジェ
      ットがなければ "None" を返します。

   grab_status()

      このウィジェットにグラブが設定されていなければ "None"、ローカル
      グラブが設定されていれば ""local""、グローバルグラブが設定されて
      いれば ""global"" を返します。

   "selection_" で始まるメソッドは、X のセレクションを取得・管理します
   。

   selection_clear(**kw)

      X のセレクションをクリアし、どのウィンドウも所有していない状態に
      します。 クリアするセレクションはキーワード引数 *selection* で、
      "'PRIMARY'" や "'CLIPBOARD'" などのアトム名として指定します。 デ
      フォルトは "PRIMARY" です。 キーワード引数 *displayof* は操作対
      象のディスプレイを決めるウィジェットを指定し、デフォルトはこのウ
      ィジェットです。

      このメソッドは "Entry"、"Listbox"、"Spinbox" でオーバーライドさ
      れ、それらの "selection_clear()" は代わりにウィジェット自身の選
      択範囲をクリアします。

   selection_get(**kw)

      現在の X のセレクションの内容を返します。 キーワード引数
      *selection* はセレクションの名前で、デフォルトは "PRIMARY" です
      。 キーワード引数 *type* はデータを返す形式 (希望する変換先) を
      "'STRING'" や "'FILE_NAME'" などのアトム名で指定します。 デフォ
      ルトは "STRING" ですが、X11 ではまず "UTF8_STRING" を試し、失敗
      した場合は "STRING" を使います。 キーワード引数 *displayof* はセ
      レクションを取得するディスプレイを決めるウィジェットを指定し、デ
      フォルトはこのウィジェットです。

   selection_handle(command, **kw)

      他のアプリケーションから要求されたときに、このウィジェットが所有
      する X のセレクションを提供するハンドラーとして *command* を登録
      します。 セレクションを取得するとき、*command* は開始文字のオフ
      セットと返す文字数の上限という 2 つの引数で呼び出され、そのオフ
      セットから始まるセレクションの文字列を、指定された文字数以下で返
      す必要があります。 非常に長いセレクションでは、オフセットを増や
      しながら繰り返し呼び出されます。 キーワード引数 *selection* はセ
      レクションの名前 (デフォルト "PRIMARY")、*type* はハンドラーが提
      供する形式 ("'STRING'" や "'FILE_NAME'" など、デフォルト
      "STRING") を指定します。

   selection_own(**kw)

      このウィジェットを、そのディスプレイの X のセレクションの所有者
      にします。 以前の所有者がいれば、セレクションを失ったことを通知
      します。 キーワード引数 *selection* はセレクションの名前で、デフ
      ォルトは "PRIMARY" です。

   selection_own_get(**kw)

      このウィジェットがあるディスプレイで、X のセレクションを所有する
      、このアプリケーション内のウィジェットを返します。 アプリケーシ
      ョン内に所有者がなければ "None" を返します。 キーワード引数
      *selection* はセレクションの名前で、デフォルトは "PRIMARY" です
      。 キーワード引数 *displayof* は調べるディスプレイを決めるウィジ
      ェットを指定し、デフォルトはこのウィジェットです。

   "clipboard_" で始まるメソッドは、クリップボードを管理します。

   clipboard_append(string, **kw)

      Tk のクリップボードに *string* を追加し、このウィジェットのディ
      スプレイでクリップボードの所有権を取得します。 追加の前に
      "clipboard_clear()" でクリップボードを空にする必要があります。
      また、クリップボードを不可分に更新するため、イベントループに戻る
      前にすべての追加を終える必要があります。 キーワード引数 *type*
      は "'STRING'" や "'FILE_NAME'" などのアトム名でデータの形式を指
      定し (デフォルト "STRING")、*format* は転送に使う表現を指定しま
      す (デフォルト "STRING")。 キーワード引数 *displayof* は対象のデ
      ィスプレイを決めるウィジェットを指定し、デフォルトはこのウィジェ
      ットです。 内容は "clipboard_get()" または "selection_get()" で
      取得できます。

   clipboard_clear(**kw)

      このウィジェットのディスプレイでクリップボードの所有権を取得し、
      以前の内容をすべて削除します。 キーワード引数 *displayof* は対象
      のディスプレイを決めるウィジェットを指定し、デフォルトはこのウィ
      ジェットです。

   clipboard_get(**kw)

      このウィジェットのディスプレイのクリップボードからデータを取得し
      ます。 キーワード引数 *type* はデータを返す形式を "'STRING'" や
      "'FILE_NAME'" などのアトム名で指定します。 デフォルトは "STRING"
      ですが、X11 ではまず "UTF8_STRING" を試し、失敗した場合は
      "STRING" を使います。 キーワード引数 *displayof* はディスプレイ
      を決めるウィジェットを指定し、デフォルトはアプリケーションのルー
      トウィンドウです。 "selection_get(selection='CLIPBOARD')" と等価
      です。

   "option_" で始まるメソッドは、Tk のオプションデータベースを参照・変
   更します。

   option_add(pattern, value, priority=None)

      *pattern* に *value* を対応付けるオプションを Tk のオプションデ
      ータベースに追加します。 *pattern* は通常の X の形式で、名前やク
      ラスをアスタリスクやドットで区切ったものです。 *priority* は 0
      から 100 までの整数、または "'widgetDefault'" (20)、
      "'startupFile'" (40)、"'userDefault'" (60)、"'interactive'" (80)
      のいずれかの名前です。 デフォルトは "interactive" です。

   option_clear()

      Tk のオプションデータベースをクリアします。 次にデータベースでオ
      プションを追加または削除するとき、"RESOURCE_MANAGER" プロパティ
      や ".Xdefaults" ファイルのデフォルトオプションが自動的に再読み込
      みされます。

   option_get(name, className)

      Tk のオプションデータベースから、*name* と *className* の下でこ
      のウィジェットに一致するオプションの値を返します。 一致する項目
      がなければ空文字列を返します。 複数の項目が一致する場合は最も優
      先度が高いものを返し、優先度が同じものの中では最後に追加されたも
      のを返します。

   option_readfile(fileName, priority=None)

      名前が *fileName* のファイルを読み込み、そこに指定されたすべての
      オプションを Tk のオプションデータベースに追加します。 ファイル
      は ".Xdefaults" のような X リソースデータベースの標準形式である
      必要があります。 *priority* は "option_add()" と同じように解釈さ
      れ、デフォルトは "interactive" です。

   bell(displayof=0)

      このウィジェットのディスプレイで、現在のベルの設定に従ってベルを
      鳴らし、その画面のスクリーンセーバーをリセットします。
      *displayof* にウィジェットを指定すると、代わりにそのウィジェット
      のディスプレイでベルを鳴らします。

   tk_setPalette(background, /)
   tk_setPalette(*args, **kw)

      すべての Tk ウィジェットの要素に、新しい配色を設定します。 既存
      のウィジェットを更新し、今後作成するウィジェットにも新しい色が使
      われるようにオプションデータベースを変更します。 色を一つだけ引
      数として渡すと、通常の背景色として使い、それを基にパレット全体を
      計算します。 または、オプションデータベース内の個々のオプション
      を *name*/*value* の組のキーワード引数で指定できます。 認識され
      る名前は "activeBackground"、"activeForeground"、"background"、
      "disabledForeground"、"foreground"、 "highlightBackground"、
      "highlightColor"、"insertBackground"、"selectColor"、
      "selectBackground"、"selectForeground"、"troughColor" です。 指
      定しなかったものには、適切なデフォルト値が計算されます。

   tk_bisque()

      アプリケーションの配色を、Tk 3.6 以前で使われていた薄茶色
      (bisque) の配色に戻します。 後方互換性のために提供されています。

   tk_strictMotif(boolean=None)

      Tk の外観や操作感を Motif に厳密に合わせるかどうかを取得または設
      定します。 *boolean* が真の場合、厳密な Motif 互換の動作を有効に
      します (例えば、マウスがスライダー上を通過しても色を変えません)
      。 設定後の値を返します。

   "busy_" で始まるメソッドは、処理中のカーソルを表示してユーザー入力
   を無視する、ウィンドウのビジー状態を管理します。

   tk_busy_hold(**kw)

      このウィジェットを処理中の状態にします。 ウィジェットの前面に透
      明なウィンドウを置き、そのウィジェットと階層内のすべての子孫でポ
      インターイベントを遮断し、処理中のカーソルを表示します。 通常は
      直後に "update()" を呼び出し、アプリケーションが処理を始める前に
      、この操作が有効になったことを保証する必要があります。

      サポートする設定オプションは、処理中に表示するカーソルを指定する
      *cursor* だけです。 "configure()" が受け付ける値のいずれかを指定
      できます。

      "busy_hold()"、"busy()"、"tk_busy()" は "tk_busy_hold()" の別名
      です。

      Added in version 3.13.

   tk_busy_configure(cnf=None, **kw)

      ビジーウィンドウの設定オプションを取得または変更します。 あらか
      じめ "tk_busy_hold()" でウィジェットをビジー状態にしておく必要が
      あります。 引数なしでは、利用できるすべてのオプションを説明する
      辞書を返します。 *cnf* がオプション名なら、そのオプションを説明
      するタプルを返します。 それ以外の場合は、指定されたオプションを
      指定された値に設定します。 オプションには "tk_busy_hold()" が受
      け付ける値を指定できます。

      オプションデータベースはウィジェットの名前やクラスを通じて参照さ
      れます。 例えば、"frame" という名前の "Frame" ウィジェットをビジ
      ー状態にする場合、次のどちらの呼び出しでも処理中のカーソルを指定
      できます。

         w.option_add('*frame.busyCursor', 'gumby')
         w.option_add('*Frame.BusyCursor', 'gumby')

      "busy_configure()"、"busy_config()"、"tk_busy_config()" は
      "tk_busy_configure()" の別名です。

      Added in version 3.13.

   tk_busy_cget(option)

      ビジー状態の設定オプション *option* の現在の値を返します。 あら
      かじめ "tk_busy_hold()" でウィジェットをビジー状態にしておく必要
      があります。 *option* には、そのメソッドが受け付ける値のいずれか
      を指定できます。

      "busy_cget()" は "tk_busy_cget()" の別名です。

      Added in version 3.13.

   tk_busy_forget()

      このウィジェットのビジー状態を解除し、ビジー状態にした際に割り当
      てたリソース (透明なウィンドウを含む) を解放します。 ウィジェッ
      トは再びユーザーのイベントを受け取るようになります。 これらのリ
      ソースは、ウィジェットが破棄されたときにも解放されます。

      "busy_forget()" は "tk_busy_forget()" の別名です。

      Added in version 3.13.

   tk_busy_status()

      ウィジェットが現在ビジー状態なら "True"、そうでなければ "False"
      を返します。

      "busy_status()" は "tk_busy_status()" の別名です。

      Added in version 3.13.

   tk_busy_current(pattern=None)

      現在ビジー状態のウィジェットのリストを返します。 *pattern* を指
      定すると、パス名がパターンに一致するビジー状態のウィジェットだけ
      を返します。

      "busy_current()" は "tk_busy_current()" の別名です。

      Added in version 3.13.

   "winfo_" で始まるメソッドは、Tk が管理するウィンドウの情報を取得し
   ます。

   winfo_atom(name, displayof=0)

      名前が *name* のアトムの整数の識別子を返します。 存在しなければ
      新しいアトムを作成します。 *displayof* を指定すると、そのウィン
      ドウのディスプレイでアトムを検索し、そうでなければアプリケーショ
      ンのメインウィンドウのディスプレイで検索します。

   winfo_atomname(id, displayof=0)

      整数の識別子 *id* を持つアトムの名前をテキストで返します。
      "winfo_atom()" の逆の操作です。 *displayof* を指定すると、そのウ
      ィンドウのディスプレイで識別子を検索し、そうでなければアプリケー
      ションのメインウィンドウのディスプレイで検索します。

   winfo_cells()

      ウィジェットのカラーマップのセル数を返します。

   winfo_children()

      ウィジェットの子ウィジェットのリストを、重なり順で奥から手前に返
      します。 トップレベルウィンドウは、論理的な親の子として返されま
      す。

   winfo_class()

      ウィジェットのクラス名を返します。

   winfo_colormapfull()

      ウィジェットのカラーマップが満杯であることが分かっている場合は
      "True"、そうでなければ "False" を返します。

   winfo_containing(rootX, rootY, displayof=0)

      *rootX* と *rootY* で指定した点を含むウィジェットを返します。 こ
      のアプリケーションのどのウィンドウにも含まれなければ "None" を返
      します。 座標は、ルートウィンドウの座標系における画面上の距離で
      す。 *displayof* を指定すると、そのウィンドウがある画面の座標に
      なり、そうでなければアプリケーションのメインウィンドウがある画面
      の座標になります。

   winfo_depth()

      ウィジェットの深度、つまりピクセルあたりのビット数を返します。

   winfo_exists()

      ウィジェットが存在すれば真、そうでなければ偽を返します。

   winfo_fpixels(number)

      画面上の距離 *number* (""2.0c"" や ""1i"" など) に相当する、この
      ウィジェットでのピクセル数を浮動小数点数で返します。 結果には小
      数部分がある場合があります。 丸めた整数値を得るには
      "winfo_pixels()" を使ってください。

   winfo_geometry()

      ウィジェットのサイズと位置を "widthxheight+x+y" という形式で返し
      ます。 すべての寸法はピクセル単位です。 位置は親ウィジェットから
      の相対位置です。 画面上の位置を取得するには "winfo_rootx()" と
      "winfo_rooty()" を使ってください。 オフセットは負になることもあ
      ります。 "geometry()" を参照してください。

   winfo_height()

      ウィジェットの高さをピクセル単位で返します。 作成直後のウィンド
      ウの高さは 1 ピクセルで、後からジオメトリマネージャーによって変
      更されます。 "winfo_reqheight()" も参照してください。

   winfo_id()

      ウィジェットの、プラットフォーム固有の低水準の識別子を返します。
      Unix では X ウィンドウ識別子、Windows ではウィンドウハンドルです
      。

   winfo_interps(displayof=0)

      特定のディスプレイに現在登録されている、すべての Tcl インタープ
      リタの名前のタプルを返します。 *displayof* を指定すると、そのウ
      ィンドウのディスプレイについて返し、そうでなければアプリケーショ
      ンのメインウィンドウのディスプレイについて返します。

   winfo_ismapped()

      ウィジェットが現在マップされていれば真、そうでなければ偽を返しま
      す。

   winfo_manager()

      ウィジェットを現在管理しているジオメトリマネージャーの名前を返し
      ます。 どのジオメトリマネージャーにも管理されていなければ空文字
      列を返します。

   winfo_name()

      ウィジェットの完全なパス名ではなく、親の中での名前を返します。

   winfo_parent()

      ウィジェットの親のパス名を返します。 ウィジェットがアプリケーシ
      ョンのメインウィンドウなら、空文字列を返します。

   winfo_pathname(id, displayof=0)

      識別子が *id* のウィンドウのパス名を返します。 *displayof* を指
      定すると、そのウィンドウのディスプレイで識別子を検索し、そうでな
      ければアプリケーションのメインウィンドウのディスプレイで検索しま
      す。

   winfo_pixels(number)

      画面上の距離 *number* (""2.0c"" や ""1i"" など) に相当する、この
      ウィジェットでのピクセル数を返します。 結果は最も近い整数に丸め
      られます。 小数部分を含む結果を得るには "winfo_fpixels()" を使っ
      てください。

   winfo_pointerx()

      画面のルートウィンドウ (使われていれば仮想ルート) を基準とする、
      ポインターの *x* 座標をピクセル単位で返します。 ポインターがウィ
      ジェットと同じ画面上になければ "-1" を返します。

   winfo_pointerxy()

      画面のルートウィンドウ (使われていれば仮想ルート) を基準とする、
      ピクセル単位のポインターの座標を "(x, y)" タプルで返します。 ポ
      インターがウィジェットと同じ画面上になければ、両方の座標が "-1"
      になります。

   winfo_pointery()

      画面のルートウィンドウ (使われていれば仮想ルート) を基準とする、
      ポインターの *y* 座標をピクセル単位で返します。 ポインターがウィ
      ジェットと同じ画面上になければ "-1" を返します。

   winfo_reqheight()

      ウィジェットが要求する高さをピクセル単位で返します。 この値は、
      ウィジェットのジオメトリマネージャーがサイズと位置を計算するため
      に使います。

   winfo_reqwidth()

      ウィジェットが要求する幅をピクセル単位で返します。 この値は、ウ
      ィジェットのジオメトリマネージャーがサイズと位置を計算するために
      使います。

   winfo_rgb(color)

      ウィジェットの *color* に対応する、赤、緑、青の強さを 0 から
      65535 の範囲で表した "(r, g, b)" タプルを返します。 *color* は色
      のオプションが受け付ける形式のいずれでも指定できます。

   winfo_rootx()

      ウィジェットの境界 (境界がなければウィジェット自身) の左上隅の
      *x* 座標を、画面のルートウィンドウの座標系で返します。

   winfo_rooty()

      ウィジェットの境界 (境界がなければウィジェット自身) の左上隅の
      *y* 座標を、画面のルートウィンドウの座標系で返します。

   winfo_screen()

      ウィジェットに対応する画面の名前を "displayName.screenIndex" と
      いう形式で返します。

   winfo_screencells()

      ウィジェットがある画面のデフォルトのカラーマップのセル数を返しま
      す。

   winfo_screendepth()

      ウィジェットがある画面のルートウィンドウの深度、つまりピクセルあ
      たりのビット数を返します。

   winfo_screenheight()

      ウィジェットがある画面の高さをピクセル単位で返します。

   winfo_screenmmheight()

      ウィジェットがある画面の高さをミリメートル単位で返します。

   winfo_screenmmwidth()

      ウィジェットがある画面の幅をミリメートル単位で返します。

   winfo_screenvisual()

      ウィジェットがある画面のデフォルトのビジュアルクラスを返します。
      ""directcolor""、""grayscale""、""pseudocolor""、""staticcolor""
      、""staticgray""、""truecolor"" のいずれかです。

   winfo_screenwidth()

      ウィジェットがある画面の幅をピクセル単位で返します。

   winfo_server()

      ウィジェットのディスプレイのサーバーに関する情報を含む文字列を返
      します。 文字列の詳しい形式は、プラットフォームによって異なる場
      合があります。

   winfo_toplevel()

      Return the top-of-hierarchy window containing the widget. In
      standard Tk this is always a "Toplevel" widget.

   winfo_viewable()

      ウィジェット自身と、最も近いトップレベルウィンドウまでのすべての
      祖先がマップされていれば真、そうでなければ偽を返します。

   winfo_visual()

      ウィジェットのビジュアルクラスを返します。 ""directcolor""、
      ""grayscale""、""pseudocolor""、""staticcolor""、""staticgray""
      、""truecolor"" のいずれかです。

   winfo_visualid()

      ウィジェットのビジュアルの X 識別子を返します。

   winfo_visualsavailable(includeids=False)

      ウィジェットがある画面で利用できるビジュアルを説明するリストを返
      します。 各項目は、ビジュアルクラス ("winfo_visual()" を参照) と
      整数の深度からなります。 *includeids* が真なら、ビジュアルの X
      識別子も含まれます。

   winfo_vrootheight()

      ウィジェットに対応する仮想ルートウィンドウがあればその高さを返し
      、なければウィジェットがある画面の高さを返します。

   winfo_vrootwidth()

      ウィジェットに対応する仮想ルートウィンドウがあればその幅を返し、
      なければウィジェットがある画面の幅を返します。

   winfo_vrootx()

      ウィジェットに対応する仮想ルートウィンドウの *x* オフセットを、
      画面のルートウィンドウを基準として返します。 通常はゼロまたは負
      で、仮想ルートウィンドウがなければ "0" です。

   winfo_vrooty()

      ウィジェットに対応する仮想ルートウィンドウの *y* オフセットを、
      画面のルートウィンドウを基準として返します。 通常はゼロまたは負
      で、仮想ルートウィンドウがなければ "0" です。

   winfo_width()

      ウィジェットの幅をピクセル単位で返します。 作成直後のウィンドウ
      の幅は 1 ピクセルで、後からジオメトリマネージャーによって変更さ
      れます。 "winfo_reqwidth()" も参照してください。

   winfo_x()

      ウィジェットの境界 (境界がなければウィジェット自身) の左上隅の
      *x* 座標を、親ウィジェットの座標系で返します。

   winfo_y()

      ウィジェットの境界 (境界がなければウィジェット自身) の左上隅の
      *y* 座標を、親ウィジェットの座標系で返します。

   info_patchlevel()

      Tcl/Tk のパッチレベルを、"sys.version_info" と同じ 5 つのフィー
      ルド *major*、*minor*、*micro*、*releaselevel*、*serial* を持つ
      名前付きタプルとして返します。 *releaselevel* は "'alpha'"、
      "'beta'"、"'final'" のいずれかです。 文字列に変換すると、通常の
      Tcl/Tk のバージョン表記になります。 例えば、正式リリースでは
      "'9.0.3'"、プレリリースでは "'9.1b2'" になります。

      Added in version 3.11.

class tkinter.Wm

   "Wm" ミックスインはウィンドウマネージャーへのアクセスを提供し、アプ
   リケーションからトップレベルウィンドウのタイトル、サイズと位置、ア
   イコン、サイズ変更の方法、ウィンドウマネージャーのプロトコルへの応
   答などを制御できるようにします。 "Tk" と "Toplevel" に組み込まれて
   いるため、すべてのトップレベルウィンドウでそのメソッドを使えます。
   各メソッドには、短い名前と "wm_" 接頭辞付きの名前という 2 つの等価
   な名前があります (例えば "title()" と "wm_title()")。 ウィンドウマ
   ネージャー も参照してください。

   aspect(minNumer=None, minDenom=None, maxNumer=None, maxDenom=None)

      ウィンドウの縦横比 (幅と高さの比) を制限します。 4 つの引数をす
      べて指定すると、ウィンドウマネージャーは比率を
      "minNumer/minDenom" から "maxNumer/maxDenom" の間に保ちます。 空
      文字列を渡すと、既存の制限を解除します。 引数なしでは現在の 4 つ
      の値のタプルを返し、縦横比の制限がなければ "None" を返します。
      "wm_aspect()" は "aspect()" の別名です。

   attributes(*args, return_python_dict=False, **kwargs)

      ウィンドウのプラットフォーム固有の属性を取得または設定します。
      引数なしでは、プラットフォーム固有のフラグとその値を返します。
      辞書として取得するには *return_python_dict* に真を渡します。
      "'alpha'" のように一つのオプション名を指定すると、その値を返しま
      す。 設定にはキーワード引数 ("alpha=0.5") を使います。

      利用できる属性はプラットフォームによって異なります。 すべてのプ
      ラットフォームで次の属性をサポートします。

      *alpha*
         ウィンドウの不透明度で、"0.0" (完全に透明) から "1.0" (不透明
         ) の範囲です。 透過表示をサポートしない環境では、値は "1.0"
         のままです。

      *appearance*
         Windows と macOS で、ウィンドウをダークモードで描画するかどう
         かを "'auto'"、"'light'"、"'dark'" で指定します (X11 では効果
         がありません)。

      *fullscreen*
         ウィンドウが画面全体を占め、境界を持たないようにするかどうか
         。

      *topmost*
         ウィンドウを他のすべてのウィンドウより手前に表示するかどうか
         。

      Windows では、さらに次の属性をサポートします。

      *disabled*
         ウィンドウが無効な状態かどうか。

      *toolwindow*
         ウィンドウにツールウィンドウのスタイルを使うかどうか。

      *transparentcolor*
         完全に透明にする色です。 空文字列なら指定しません。

      macOS では、さらに次の属性をサポートします。

      *class*
         内部の Aqua ウィンドウを "nswindow" と "nspanel" のどちらにす
         るかを指定します。 ウィンドウが作成される前にだけ設定できます
         。

      *modified*
         ウィンドウの閉じるボタンとプロキシアイコンで示す、変更済みの
         状態。

      *notify*
         注意を引くために、アプリケーションの Dock アイコンを跳ねさせ
         るかどうか。

      *stylemask*
         内部の Aqua ウィンドウのスタイルマスクです。 "titled" や
         "resizable" などのビット名のリストで指定します。

      *tabbingid*
         ウィンドウが属するタブグループの識別子。

      *tabbingmode*
         ウィンドウをタブとして開くことを許可するかどうかを、"'auto'"
         、"'preferred'"、"'disallowed'" で指定します。

      *titlepath*
         ウィンドウのプロキシアイコンが表すファイルのパス。

      *transparent*
         内容領域を透明にし、ウィンドウの影を消すかどうか。

      X11 では、さらに次の属性をサポートします。

      *type*
         ウィンドウマネージャーがそのウィンドウをどう扱うかを指定する
         ウィンドウの種類、または優先順に並べた種類のリストです。
         "'dialog'" や "'splash'" などを指定します。

      *zoomed*
         ウィンドウが最大化されているかどうか。

      注釈:

        Tk 8.6 で *type* 属性が追加され、Tk 9.0 で *appearance*、
        *class*、*stylemask*、*tabbingid*、*tabbingmode* 属性が追加さ
        れました。

      X11 では変更が非同期に適用されるため、取得した値に最新の要求がま
      だ反映されていない場合があります。 "wm_attributes()" は
      "attributes()" の別名です。

      バージョン 3.13 で変更: 単一の属性を、先頭に "-" を付けずに名前
      で取得できるようになり、キーワード引数で設定できるようになりまし
      た。 *return_python_dict* 引数が追加されました。

      バージョン 3.13 で非推奨: "w.attributes('-alpha', 0.5)" のように
      、先頭に "-" を付けたオプション名とその値を 2 つの位置引数として
      渡して属性を設定する方法は非推奨です。 代わりにキーワード引数を
      使ってください。

   client(name=None)

      アプリケーションが動作するホストの名前である *name* を、ウィンド
      ウマネージャーやセッションマネージャーが使えるように、ウィンドウ
      の "WM_CLIENT_MACHINE" プロパティに保存します。 空文字列を指定す
      るとプロパティを削除します。 引数なしでは、最後に設定した名前、
      または空文字列を返します。 "wm_client()" は "client()" の別名で
      す。

   colormapwindows(*wlist)

      専用のカラーマップを持つウィンドウをウィンドウマネージャーに知ら
      せる、"WM_COLORMAP_WINDOWS" プロパティを操作します。 *wlist* を
      指定すると、そのウィンドウ群でプロパティを上書きします (順序はカ
      ラーマップを適用する優先順です)。 引数なしでは、プロパティに現在
      指定されているウィンドウのリストを返します。
      "wm_colormapwindows()" は "colormapwindows()" の別名です。

   command(value=None)

      ウィンドウマネージャーやセッションマネージャーが使えるように、ウ
      ィンドウの "WM_COMMAND" プロパティに *value* を保存します。 アプ
      リケーションの起動に使ったコマンドの各単語を並べたリストを指定す
      る必要があります。 空文字列を指定するとプロパティを削除します。
      引数なしでは、最後に設定した値、または空文字列を返します。
      "wm_command()" は "command()" の別名です。

   deiconify()

      ウィンドウをマップし、アイコン化されていない通常の状態で表示しま
      す。 一度もマップされていない場合は、最初にマップされるときにア
      イコン化されずに表示されるようにします。 Windows では、さらにウ
      ィンドウを手前に移動してフォーカスを与えます。 "wm_deiconify()"
      は "deiconify()" の別名です。

   focusmodel(model=None)

      ウィンドウのフォーカスモデルを設定または取得します。 *model* は
      "'active'" (他のアプリケーションにフォーカスがあっても、自身また
      は子孫のために入力フォーカスを取得する) か、 "'passive'" (ウィン
      ドウマネージャーがフォーカスを与えるのを待つ) のどちらかです。
      引数なしでは現在のモデルを返します。 デフォルトは "'passive'" で
      、"focus()" コマンドもこれを前提としています。 "wm_focusmodel()"
      は "focusmodel()" の別名です。

   forget(window)

      *window* を画面からアンマップし、ウィンドウマネージャーの管理対
      象から外します。 "Toplevel" は "Frame" のように扱われます。 ただ
      し "-menu" の設定は記憶され、ウィジェットが再び管理対象になると
      メニューも再表示されます。 "wm_forget()" は "forget()" の別名で
      す。

      "Pack.forget()" と混同しないでください。

      Added in version 3.3.

   frame()

      ウィンドウマネージャーがウィンドウを装飾フレームの子にしている場
      合は、それを含む最も外側の装飾フレームの、プラットフォーム固有の
      ウィンドウ識別子を返します。 そうでなければ、ウィンドウ自身の識
      別子を返します。 "wm_frame()" は "frame()" の別名です。

   geometry(newGeometry=None)

      ウィンドウのサイズと位置を設定または取得します。 *newGeometry*
      は "=widthxheight+x+y" という形式で、"="、"widthxheight"、位置の
      "+x+y" はそれぞれ省略できます。 *width* と *height* はピクセル単
      位 (グリッド化されたウィンドウではグリッド単位) です。 位置に
      "+" が付くと画面の左端または上端から、"-" が付くと右端または下端
      から測ります。 ウィンドウの端が対応する画面の端を越える場合、
      "'200x100+-9+-8'" のようにオフセットが負になることもあります。
      空文字列はユーザー指定のサイズと位置を解除し、ウィンドウを本来の
      サイズに戻します。 引数なしでは、現在のサイズと位置を
      "'200x200+10+10'" のような文字列で返します。 "wm_geometry()" は
      "geometry()" の別名です。

   grid(baseWidth=None, baseHeight=None, widthInc=None, heightInc=None)

      ウィンドウをグリッド化して管理し、グリッド単位とピクセルの関係を
      定義します。 *baseWidth* と *baseHeight* は、ウィンドウが内部的
      に要求するサイズをグリッド単位で表した数で、*widthInc* と
      *heightInc* は、水平方向と垂直方向のグリッド 1 単位のピクセル数
      です。 空文字列を渡すとグリッド単位での管理を解除します。 引数な
      しでは現在の 4 つの値のタプルを返し、グリッド化されていなければ
      "None" を返します。 "wm_grid()" は "grid()" の別名です。

      grid ジオメトリマネージャーの "Grid.grid()" と混同しないでくださ
      い。

   group(pathName=None)

      関連するウィンドウのグループのリーダーを設定または取得します。
      *pathName* はグループリーダーのパス名です。 例えばウィンドウマネ
      ージャーは、リーダーがアイコン化されたときにグループのすべてのウ
      ィンドウをアンマップすることがあります。 空文字列を指定すると、
      ウィンドウをグループから外します。 引数なしでは現在のグループリ
      ーダーのパス名、または空文字列を返します。 "wm_group()" は
      "group()" の別名です。

   iconbitmap(bitmap=None, default=None)

      ウィンドウマネージャーがウィンドウのアイコンに使うビットマップを
      設定または取得します。 *bitmap* は Tk が受け付ける標準形式のいず
      れかでビットマップを指定します。 空文字列は現在のアイコンビット
      マップを解除します。 引数なしでは現在のアイコンビットマップの名
      前、または空文字列を返します。 Windows の *default* 引数は、独自
      のアイコンを持たないすべてのトップレベルウィンドウに適用するアイ
      コン (".ico" ファイルなど) を指定します。 "wm_iconbitmap()" は
      "iconbitmap()" の別名です。

   iconify()

      ウィンドウをアイコン化します。 まだ一度もマップされていない場合
      は、後でマップされるときにアイコン化された状態で現れるようにしま
      す。 "wm_iconify()" は "iconify()" の別名です。

   iconmask(bitmap=None)

      アイコンのマスクとして使うビットマップを設定または取得します
      ("iconbitmap()" を参照)。 マスクが 0 の部分はアイコンを表示せず
      、1 の部分はアイコンビットマップの対応するビットを表示します。
      空文字列は現在のマスクを解除します。 引数なしでは現在のアイコン
      マスクの名前、または空文字列を返します。 "wm_iconmask()" は
      "iconmask()" の別名です。

   iconname(newName=None)

      ウィンドウマネージャーがウィンドウのアイコン内に表示する名前を設
      定または取得します。 引数なしでは現在のアイコン名を返し、未設定
      なら空文字列を返します (この場合、ウィンドウマネージャーは通常ウ
      ィンドウのタイトルを表示します)。 "wm_iconname()" は
      "iconname()" の別名です。

   iconphoto(default=False, *images)

      *images* に指定した 1 つ以上の "PhotoImage" オブジェクトから、ウ
      ィンドウのタイトルバーのアイコンを設定します。 16x16 や 32x32 な
      ど、異なるサイズの画像を複数渡すと、ウィンドウマネージャーが適切
      なものを選べます。 画像データは呼び出し時点で取り込まれるため、
      その後の画像の変更は反映されません。 *default* が真の場合は、今
      後作成するすべてのトップレベルウィンドウにもアイコンを適用します
      。 macOS では最初の画像だけを使います。 "wm_iconphoto()" は
      "iconphoto()" の別名です。

      Added in version 3.3.

   iconposition(x=None, y=None)

      ウィンドウのアイコンを配置する位置について、ウィンドウマネージャ
      ーへのヒントを設定または取得します。 空文字列は既存のヒントを解
      除します。 引数なしでは現在の 2 つの値のタプルを返し、有効なヒン
      トがなければ "None" を返します。 "wm_iconposition()" は
      "iconposition()" の別名です。

   iconwindow(pathName=None)

      ウィンドウのアイコンとして使うウィンドウを設定または取得します。
      ウィンドウをアイコン化すると *pathName* がアイコンとしてマップさ
      れ、アイコン化を解除するとアンマップされます。 空文字列は対応付
      けを解除します。 引数なしでは現在のアイコンウィンドウのパス名、
      または空文字列を返します。 すべてのウィンドウマネージャーがアイ
      コンウィンドウをサポートしているわけではなく、X11 以外のプラット
      フォームではこの概念に意味はありません。 "wm_iconwindow()" は
      "iconwindow()" の別名です。

   manage(widget)

      *widget* を独立したトップレベルウィンドウにし、ウィンドウマネー
      ジャーがタイトルバーなどの装飾を付けるようにします。 使えるのは
      "Frame"、"LabelFrame"、"Toplevel" だけです ("tkinter.ttk" 版は
      **使えません**)。 他の種類のウィジェットを渡すとエラーになります
      。 "wm_manage()" は "manage()" の別名です。

      Added in version 3.3.

   maxsize(width=None, height=None)

      ウィンドウで許可する最大サイズをピクセル単位 (グリッド化されたウ
      ィンドウではグリッド単位) で設定または取得します。 ウィンドウマ
      ネージャーは、ウィンドウが *width* と *height* を超えないように
      制限します。 引数なしでは現在の最大幅と最大高さのタプルを返しま
      す。 最大サイズのデフォルトは画面のサイズです。 "wm_maxsize()"
      は "maxsize()" の別名です。

   minsize(width=None, height=None)

      ウィンドウで許可する最小サイズをピクセル単位 (グリッド化されたウ
      ィンドウではグリッド単位) で設定または取得します。 ウィンドウマ
      ネージャーは、ウィンドウが *width* と *height* を下回らないよう
      に制限します。 引数なしでは現在の最小幅と最小高さのタプルを返し
      ます。 最小サイズのデフォルトは各方向に 1 ピクセルです。
      "wm_minsize()" は "minsize()" の別名です。

   overrideredirect(boolean=None)

      ウィンドウの override-redirect フラグを設定または取得します。 こ
      のフラグが設定されると、ウィンドウマネージャーはそのウィンドウを
      無視します。 装飾フレームの子にはせず、ユーザーは通常のウィンド
      ウマネージャーの操作部品を使って操作できません。 引数なしではフ
      ラグが設定されているかを表す真偽値を返し、未設定なら "None" を返
      します。 フラグが確実に反映されるのは、最初にマップするときか、
      withdrawn 状態から再マップするときだけです。
      "wm_overrideredirect()" は "overrideredirect()" の別名です。

   positionfrom(who=None)

      ウィンドウの現在の位置を指定した主体を設定または取得します。
      *who* は "'program'" または "'user'" で、位置がプログラムとユー
      ザーのどちらによって要求されたかを表します。 空文字列は現在の指
      定を解除します。 引数なしでは現在の指定を返し、未設定なら空文字
      列を返します。 明示的に "'program'" に設定されていない限り、
      "geometry()" の呼び出し時に Tk が自動的に "'user'" に設定します
      。 "wm_positionfrom()" は "positionfrom()" の別名です。

   protocol(name=None, func=None)

      "'WM_DELETE_WINDOW'"、"'WM_SAVE_YOURSELF'"、"'WM_TAKE_FOCUS'" な
      どのアトムで指定するウィンドウマネージャーのプロトコル *name* に
      、ハンドラー *func* を登録します。 ウィンドウマネージャーがその
      プロトコルのメッセージを送るたびに *func* が呼び出されます。 Tk
      はウィンドウを破棄するデフォルトの "WM_DELETE_WINDOW" ハンドラー
      を設定しますが、このメソッドで置き換えられます。 *func* が空文字
      列なら、ハンドラーを削除します。 *name* だけを指定すると、登録さ
      れたハンドラーコマンドの名前を返し、未設定なら空文字列を返します
      (デフォルトの "WM_DELETE_WINDOW" ハンドラーは返しません)。 引数
      なしでは、現在ハンドラーが登録されているプロトコルのタプルを返し
      ます。 "wm_protocol()" は "protocol()" の別名です。

   resizable(width=None, height=None)

      ユーザーが対話的にウィンドウのサイズを変更できるかを制御します。
      *width* と *height* は、幅と高さを変更できるかをそれぞれ指定する
      真偽値です。 引数なしでは、各方向のサイズを現在変更できるかを示
      す、2 つの "0"/"1" のタプルを返します。 デフォルトでは両方向とも
      変更できます。 "wm_resizable()" は "resizable()" の別名です。

   sizefrom(who=None)

      ウィンドウの現在のサイズを指定した主体を設定または取得します。
      *who* は "'program'" または "'user'" で、サイズがプログラムとユ
      ーザーのどちらによって要求されたかを表します。 空文字列は現在の
      指定を解除します。 引数なしでは現在の指定を返し、未設定なら空文
      字列を返します。 "wm_sizefrom()" は "sizefrom()" の別名です。

   state(newstate=None)

      ウィンドウの状態を設定または取得します。 引数なしでは、現在の状
      態を "'normal'"、"'iconic'"、"'withdrawn'"、"'icon'"、または
      Windows と macOS でのみ使える "'zoomed'" のいずれかとして返しま
      す。 "'iconic'" はアイコン化されたウィンドウを表し、"'icon'" は
      別のウィンドウのアイコンとして使われているウィンドウを表します
      ("iconwindow()" を参照)。 "'icon'" 状態を設定することはできませ
      ん。 "wm_state()" は "state()" の別名です。

      "ttk.Widget.state" と混同しないでください。

   title(string=None)

      ウィンドウマネージャーがタイトルバーに表示する、ウィンドウのタイ
      トルを設定または取得します。 引数なしでは現在のタイトルを返しま
      す。 デフォルトはウィンドウの名前です。 "wm_title()" は
      "title()" の別名です。

   transient(master=None)

      ウィンドウを、別のトップレベルウィンドウのパス名 *master* に代わ
      って動作する、一時的なウィンドウ (プルダウンメニューやダイアログ
      など) として設定します。 空文字列はこの状態を解除します。 引数な
      しでは現在の親のパス名、または空文字列を返します。 一時的なウィ
      ンドウは親の状態変化に追従し、ウィンドウマネージャーによって異な
      る装飾が付けられることがあります。 ウィンドウを自分自身の一時的
      なウィンドウにすることはできません。 "wm_transient()" は
      "transient()" の別名です。

   withdraw()

      ウィンドウを画面からアンマップし、ウィンドウマネージャーの管理か
      ら外します。 一度もマップされていなければ、withdrawn 状態でマッ
      プされるようにします。 ウィンドウマネージャーによっては、ウィン
      ドウ属性の変更を認識させるために、いったん非表示にしてから再マッ
      プする必要があります (例えば "deiconify()" を使います)。
      "wm_withdraw()" は "withdraw()" の別名です。

class tkinter.Pack

   コンテナーの各辺に沿ってウィジェットを詰めて配置するジオメトリマネ
   ージャーです。 "Pack" ミックスインは、"Widget" を通じてすべてのウィ
   ジェットに継承され、*pack* ジオメトリマネージャーでウィジェットを管
   理するためのメソッドを提供します。 ジオメトリ管理 も参照してくださ
   い。

   注釈:

     "Pack", "Place" and "Grid" all define the short method names
     "forget()", "info()", "slaves()", "content()" and "propagate()".
     On a widget the bare names resolve to the *pack* manager's
     versions, since "Pack" and "Misc" precede "Place" and "Grid" in
     the method resolution order, whatever manager actually manages
     the widget; and "configure()"/"config()" configure the widget's
     options, not its geometry. Use the explicit "pack_*", "grid_*"
     and "place_*" methods (and "pack", "grid", "place" for geometry
     configuration) to act on a specific geometry manager.

   pack_configure(cnf={}, **kw)
   pack(cnf={}, **kw)

      コンテナー内で、すでに pack で配置されている兄弟ウィジェットとの
      相対位置に、このウィジェットを配置します。 サポートするオプショ
      ンは次のとおりです。

      *side*
         ウィジェットをコンテナーのどの辺に沿って配置するかを、"'top'"
         (デフォルト)、"'bottom'"、"'left'"、"'right'" で指定します。

      *fill*
         割り当てられた領域を埋めるようにウィジェットを引き伸ばすかを
         、"'none'" (デフォルト)、"'x'"、"'y'"、"'both'" で指定します
         。

      *expand*
         コンテナー内の余分なスペースを使うように、ウィジェットを拡張
         するかどうかです (真偽値、デフォルトは偽)。

      *anchor*
         割り当てられた領域がウィジェットより大きい場合に、その中のど
         こに配置するかを指定します。 "'n'" や "'sw'" などのアンカーで
         す (デフォルト "'center'")。

      *ipadx*, *ipady*
         ウィジェットの左右 (*ipadx*) または上下 (*ipady*) に加える内
         側の余白を、画面上の距離で指定します (デフォルト "0")。

      *padx*, *pady*
         ウィジェットの左右 (*padx*) または上下 (*pady*) に設ける外側
         の余白を、画面上の距離、または両側それぞれの距離の組で指定し
         ます (デフォルト "0")。

      *after*
         指定したウィジェットと同じコンテナーで、そのウィジェットの後
         に pack の配置順を設定します。

      *before*
         指定したウィジェットと同じコンテナーで、そのウィジェットの前
         に pack の配置順を設定します。

      *in_*
         ウィジェットを pack で配置するコンテナーです。 デフォルトは親
         ウィジェットです。

      "pack()"、"configure()"、"config()" は "pack_configure()" の別名
      です。

   pack_forget()

      ウィジェットをアンマップして pack の配置順から外し、その配置オプ
      ションを破棄します。 後で "pack_configure()" により再び配置でき
      ます。 "forget()" は "pack_forget()" の別名です。 ただし、
      "PanedWindow"、"ttk.Notebook"、"ttk.PanedWindow" は、独自の
      "forget()" メソッドを提供します。

      "Wm.forget()" と混同しないでください。

   pack_info()

      ウィジェットの現在の pack の配置オプションを辞書で返します。
      "info()" は "pack_info()" の別名です。

   pack_propagate()
   pack_propagate(flag)

      "Misc.pack_propagate()" と同じです。 このウィジェットをコンテナ
      ーとして扱い、サイズの伝播を有効または無効にします。
      "propagate()" は "pack_propagate()" の別名です。

   pack_slaves()

      "Misc.pack_slaves()" と同じです。 このウィジェット内に pack で配
      置されているウィジェットのリストを返します。 "slaves()" は
      "pack_slaves()" の別名です。

   pack_content()

      "Misc.pack_content()" と同じです。 "content()" は
      "pack_content()" の別名です。

      Added in version 3.15.

class tkinter.Place

   コンテナー内で明示的な位置とサイズにウィジェットを配置するジオメト
   リマネージャーです。 "Place" ミックスインは、"Widget" を通じてすべ
   てのウィジェットに継承されます。 ジオメトリ管理 も参照してください
   。

   place_configure(cnf={}, **kw)
   place(cnf={}, **kw)

      ウィジェットをコンテナー内の絶対位置または相対位置に配置します。
      サポートするオプションは次のとおりです。

      *x*, *y*
         ウィジェットのアンカー点の水平方向と垂直方向の絶対位置を、画
         面上の距離で指定します (デフォルト "0")。

      *relx*, *rely*
         ウィジェットのアンカー点の水平方向と垂直方向の位置を、コンテ
         ナーの幅と高さに対する割合で指定します。 "0.0" が左端または上
         端、"1.0" が右端または下端です。 絶対位置と相対位置の両方を指
         定すると、値が加算されます。

      *anchor*
         指定した位置にウィジェットのどの点を合わせるかを、"'n'" や
         "'se'" などのアンカーで指定します (デフォルト "'nw'")。

      *width*, *height*
         ウィジェットの絶対的な幅と高さを、画面上の距離で指定します。
         デフォルトでは、ウィジェットが要求するサイズを使います。

      *relwidth*, *relheight*
         ウィジェットの幅と高さを、コンテナーの幅と高さに対する割合で
         指定します。 絶対サイズと相対サイズの両方を指定すると、値が加
         算されます。

      *bordermode*
         コンテナーの境界を配置にどう反映するかを指定します。
         "'inside'" (デフォルト) は境界の内側の領域、"'outside'" は境
         界を含む領域、"'ignore'" は X が定義する領域を使います。

      *in_*
         ウィジェットの配置の基準となるコンテナーです。 ウィジェットの
         親か、その親の子孫でなければなりません。 デフォルトは親です。

      "place()"、"configure()"、"config()" は "place_configure()" の別
      名です。

   place_forget()

      ウィジェットをアンマップして place の配置から外し、その配置オプ
      ションを破棄します。

   place_info()

      ウィジェットの現在の place の配置オプションを辞書で返します。

   place_slaves()

      "Misc.place_slaves()" と同じです。 このウィジェット内に place で
      配置されているウィジェットのリストを返します。

   place_content()

      "Misc.place_content()" と同じです。

      Added in version 3.15.

class tkinter.Grid

   コンテナー内の行と列からなる 2 次元グリッドにウィジェットを配置する
   ジオメトリマネージャーです。 "Grid" ミックスインは、"Widget" を通じ
   てすべてのウィジェットに継承されます。 ジオメトリ管理 も参照してく
   ださい。

   grid_configure(cnf={}, **kw)
   grid(cnf={}, **kw)

      ウィジェットを、コンテナーのグリッドのセルに配置します。

      "Wm.grid()" と混同しないでください。

      サポートするオプションは次のとおりです。

      *row*, *column*
         ウィジェットを配置するセルの行と列を、"0" から数えた番号で指
         定します。 *column* のデフォルトは、同じ "grid_configure()"
         呼び出しで直前に配置したウィジェットの次の列 (または "0")、
         *row* のデフォルトは次の空の行です。

      *rowspan*, *columnspan*
         ウィジェットが占める行数と列数です (デフォルト "1")。

      *sticky*
         セルがウィジェットより大きい場合に、ウィジェットの配置や引き
         伸ばしをどう行うかを指定します。 "'n'"、"'s'"、"'e'"、"'w'"
         をゼロ個以上含む文字列で、ウィジェットを合わせるセルの辺を表
         します。 "'n'" と "'s'" (または "'e'" と "'w'") の両方を指定
         すると、セルの高さ (または幅) いっぱいにウィジェットを引き伸
         ばします。 デフォルトは "''" で、要求されたサイズのままセルの
         中央に配置します。

      *ipadx*, *ipady*
         ウィジェットの左右 (*ipadx*) または上下 (*ipady*) に加える内
         側の余白を、画面上の距離で指定します (デフォルト "0")。

      *padx*, *pady*
         ウィジェットの左右 (*padx*) または上下 (*pady*) に設ける外側
         の余白を、画面上の距離、または両側それぞれの距離の組で指定し
         ます (デフォルト "0")。

      *in_*
         ウィジェットを配置するグリッドのコンテナーです。 デフォルトは
         親ウィジェットです。

      "grid()"、"configure()"、"config()" は "grid_configure()" の別名
      です。

   grid_forget()

      ウィジェットをアンマップしてグリッドから外し、そのグリッドのオプ
      ションを破棄します。

   grid_remove()

      ウィジェットをアンマップしてグリッドから外しますが、再び配置した
      ときに同じセルに戻るよう、グリッドのオプションは記憶します。

   grid_info()

      ウィジェットの現在のグリッドのオプションを辞書で返します。

   grid_bbox(column=None, row=None, col2=None, row2=None)

      "Misc.grid_bbox()" と同じです。 "bbox()" は "grid_bbox()" の別名
      です。 ただし、"Canvas"、"Listbox"、"Spinbox"、"Text"、
      "ttk.Entry"、"ttk.Treeview" は、独自の "bbox()" メソッドを提供し
      ます。

   grid_columnconfigure(index, cnf={}, **kw)

      "Misc.grid_columnconfigure()" と同じです。 グリッドの列のオプシ
      ョン (*weight*、*minsize*、*pad*、*uniform* など) を取得または設
      定します。 "columnconfigure()" は "grid_columnconfigure()" の別
      名です。

   grid_rowconfigure(index, cnf={}, **kw)

      "Misc.grid_rowconfigure()" と同じです。 グリッドの行のオプション
      を取得または設定します。 "rowconfigure()" は
      "grid_rowconfigure()" の別名です。

   grid_location(x, y)

      "Misc.grid_location()" と同じです。 *x*, *y* のピクセルを含むセ
      ルの "(column, row)" を返します。 "location()" は
      "grid_location()" の別名です。

   grid_size()

      "Misc.grid_size()" と同じです。 グリッドのサイズを表す
      "(columns, rows)" タプルを返します。 "size()" は "grid_size()"
      の別名です。 ただし、"Listbox" ウィジェットは独自の "size()" メ
      ソッドを提供します。

   grid_propagate()
   grid_propagate(flag)

      "Misc.grid_propagate()" と同じです。

   grid_slaves(row=None, column=None)

      "Misc.grid_slaves()" と同じです。 グリッドで管理するウィジェット
      を返します。 *row* や *column* で限定することもできます。

   grid_content(row=None, column=None)

      "Misc.grid_content()" と同じです。

      Added in version 3.15.

class tkinter.XView

   "Entry"、"Canvas"、"Listbox"、"Text"、"Spinbox" などのウィジェット
   に共通する、横スクロールのインターフェースを提供するミックスインで
   す。 ウィジェットの "xview()" メソッドを、水平 "Scrollbar" の
   *command* に登録します。

   xview(*args)

      表示領域の水平方向の位置を取得または変更します。 引数なしでは、
      文書の現在表示されている部分を表す、0 から 1 までの 2 つの割合の
      タプル "(first, last)" を返します。 それ以外の場合、通常はスクロ
      ールバーが生成する引数を、Tk の "xview" ウィジェットコマンドに渡
      します。 "xview_moveto()" と "xview_scroll()" は、より便利なイン
      ターフェースを提供します。

   xview_moveto(fraction)

      文書の全幅に対する *fraction* の割合が左側の表示範囲外になるよう
      に、表示領域を調整します。 *fraction* は 0 から 1 までの数です。

   xview_scroll(number, what)

      表示領域を左右に *number* 単位移動します。 *what* は "'units'"
      または "'pages'" で、*number* が負なら左、正なら右にスクロールし
      ます。 "Text" ウィジェットは "'pixels'" も受け付け、この場合
      *number* には "'1i'" のような画面上の距離を指定できます。

class tkinter.YView

   "Canvas"、"Listbox"、"Text" などのウィジェットに共通する、縦スクロ
   ールのインターフェースを提供するミックスインです。 ウィジェットの
   "yview()" メソッドを、垂直 "Scrollbar" の *command* に登録します。

   yview(*args)

      表示領域の垂直方向の位置を取得または変更します。 引数なしでは、
      文書の現在表示されている部分を表す、0 から 1 までの 2 つの割合の
      タプル "(first, last)" を返します。 それ以外の場合、通常はスクロ
      ールバーが生成する引数を、Tk の "yview" ウィジェットコマンドに渡
      します。 "yview_moveto()" と "yview_scroll()" は、より便利なイン
      ターフェースを提供します。

   yview_moveto(fraction)

      文書の全高に対する *fraction* の割合が上側の表示範囲外になるよう
      に、表示領域を調整します。 *fraction* は 0 から 1 までの数です。

   yview_scroll(number, what)

      表示領域を上下に *number* 単位移動します。 *what* は "'units'"
      または "'pages'" で、*number* が負なら上、正なら下にスクロールし
      ます。 "Text" ウィジェットは "'pixels'" も受け付け、この場合
      *number* には "'1i'" のような画面上の距離を指定できます。

class tkinter.BaseWidget(master, widgetName, cnf={}, kw={}, extra=())

   すべてのウィジェットの内部的な基底クラスです。 "Misc" を継承し、内
   部の Tk ウィジェットを作成する仕組みを追加します。 アプリケーション
   コードでは通常、"BaseWidget" を直接インスタンス化せず、"Widget" や
   具体的なウィジェットクラスを使います。

   destroy()

      このウィジェットとすべての子ウィジェットを破棄し、対応する Tk ウ
      ィジェットと関連する Tcl コマンドを削除します。

class tkinter.Widget(master, widgetName, cnf={}, kw={}, extra=())

   標準ウィジェットの内部的な基底クラスです。 "BaseWidget" と、ジオメ
   トリマネージャーのミックスイン "Pack"、"Place"、"Grid" を組み合わせ
   、すべてのウィジェットを 3 種類のどのマネージャーでも管理できるよう
   にします。 具体的なウィジェットクラス ("Button"、"Label" など) は
   "Widget" から派生します。


トップレベルウィジェット
------------------------

class tkinter.Tk(screenName=None, baseName=None, className='Tk', useTk=True, sync=False, use=None)

   通常はアプリケーションのメインウィンドウとなる、Tk のトップレベルウ
   ィジェットを作成し、そのための Tcl インタープリタを初期化します。
   各インスタンスは専用の Tcl インタープリタを持ちます。 "Misc" と
   "Wm" を継承します。

   Tk サブシステムを初期化せずに Tcl インタープリタを作成するには、代
   わりに "Tcl()" ファクトリー関数を使います。

   "Tk" は通常、すべてデフォルト値でインスタンス化します。 ただし、現
   在は次のキーワード引数を受け付けます。

   *screenName*
      文字列を指定すると、"DISPLAY" 環境変数を設定します (X11 のみ)。

   *baseName*
      プロファイルファイルの名前です。 デフォルトでは、*baseName* はプ
      ログラム名 ("sys.argv[0]") から生成されます。

   *className*
      ウィジェットクラスの名前です。 プロファイルファイルの名前と、Tcl
      を起動する名前 (*interp* 内の *argv0*) としても使います。

   *useTk*
      "True" の場合は Tk サブシステムを初期化します。 "tkinter.Tcl()"
      関数はこれを "False" に設定します。

   *sync*
      "True" の場合は X サーバーのすべてのコマンドを同期的に実行し、エ
      ラーが直ちに報告されるようにします。 デバッグに使えます (X11 の
      み)。

   *use*
      独立したトップレベルウィンドウを作成する代わりに、アプリケーショ
      ンを埋め込むウィンドウの *id* を指定します。 *id* はトップレベル
      ウィジェットの -use オプションの値と同じ形式、つまり
      "winfo_id()" が返すような形式で指定しなければなりません。

      一部のプラットフォームでは、*id* が -container オプションを有効
      にした Tk のフレームまたはトップレベルウィンドウを指す場合にだけ
      、正しく動作します。

   "Tk" は ".*className*.tcl" と ".*baseName*.tcl" というプロファイル
   ファイルを読み込み、Tcl インタープリタで解釈します。 また、
   ".*className*.py" と ".*baseName*.py" の内容に対して "exec()" を呼
   び出します。 プロファイルファイルの場所は "HOME" 環境変数で指定され
   、未定義なら "os.curdir" です。

   注釈:

     Windows では、"Tk" のインスタンス化や "Tcl()" の呼び出しで Tcl イ
     ンタープリタを作成すると、プロセスの "HOME" 環境変数が未設定の場
     合、"%HOMEDRIVE%%HOMEPATH%" (または "USERPROFILE"、あるいは
     "c:\") に設定されます。 これは Tcl が行う処理で、"HOME" を参照す
     る他のコードに影響する場合があります。

   tk

      "Tk" のインスタンス化によって作成される Tk アプリケーションオブ
      ジェクトです。 Tcl インタープリタへのアクセスを提供します。 同じ
      "Tk" インスタンスに属するすべてのウィジェットは、"tk" 属性に同じ
      値を持ちます。

   master

      このウィジェットを含むウィジェットオブジェクトです。 "Tk" はメイ
      ンウィンドウなので、"master" は "None" です。 *master* と
      *parent* は似た用語で、引数名として同じ意味で使われることがあり
      ます。 ただし、"winfo_parent()" の呼び出しはウィジェット名の文字
      列を返すのに対し、"master" はオブジェクトを返します。
      *parent*/*child* は木構造の関係、*master* (または
      *container*)/*content* はコンテナーの構造を表します。

   children

      このウィジェットの直接の子を表す "dict" で、子ウィジェットの名前
      がキー、子のインスタンスオブジェクトが値です。

   destroy()

      Destroy this and all descendant widgets and, for the main
      window, end the connection to the underlying Tcl interpreter.

   loadtk()

      Tk サブシステムの読み込みと初期化を完了します。 Tk なしでインタ
      ープリタを作成した場合 (例えば "Tcl()" を使った場合) にだけ必要
      です。 *useTk* が真の場合は自動的に呼び出されます。

   readprofile(baseName, className)

      ユーザーのプロファイルファイル ".*className*.tcl" と
      ".*baseName*.tcl" を読み込んで Tcl インタープリタで実行し、対応
      する ".*className*.py" と ".*baseName*.py" ファイルを実行します
      。 初期化時に呼び出されます。 前述のコンストラクターの説明を参照
      してください。

   report_callback_exception(exc, val, tb)

      コールバックの例外を報告します。 例外が Tkinter のコールバックの
      外に伝播したときに呼び出されます。 *exc*、*val*、*tb* は
      "sys.exc_info()" が返す例外の型、値、トレースバックです。 デフォ
      ルトの実装は "sys.stderr" にトレースバックを出力します。 オーバ
      ーライドして、ダイアログにトレースバックを表示するなど、エラー処
      理を変更できます。

class tkinter.Toplevel(master=None, cnf={}, **kw)

   "Toplevel" ウィジェットはトップレベルウィンドウです。 "Frame" と似
   ていますが、X における親は論理的な親ではなく、画面のルートウィンド
   ウです。 主にダイアログボックスなどのウィジェット群のコンテナーとし
   て使い、自身の見た目は背景と、必要に応じて表示する立体的な境界だけ
   です。 代表的なオプションには、"Menu" をウィンドウのメニューバーと
   して設定する *menu* があります。 "BaseWidget" と "Wm" を継承するた
   め、ウィンドウマネージャーが管理します。 オプションの全一覧は Tk の
   "toplevel" マニュアルページを参照してください。


ウィジェットクラス
------------------

class tkinter.Button(master=None, cnf={}, **kw)

   "Button" ウィジェットは、テキスト文字列、ビットマップ、画像を表示し
   、ユーザーが押すとコマンドを呼び出します (ボタン上でマウスのボタン
   1 をクリックするか、フォーカスがあるときにスペースキーを押します)。
   "Widget" を継承します。 標準のウィジェットオプションに加えて、
   *command* (ボタンを押すと呼び出すコールバック)、*textvariable*、
   *state*、*default* など、Tk の "button" マニュアルページに記載され
   たオプションを受け付けます。

   invoke()

      ボタンにコマンドが関連付けられていれば、それを呼び出して結果を返
      します。 関連付けられていなければ空文字列を返します。 ボタンの状
      態が "disabled" の場合は無視されます。

   flash()

      アクティブ時と通常時の色を交互に使って数回再表示し、ボタンを点滅
      させます。 点滅後は、呼び出し時と同じ通常状態またはアクティブ状
      態に戻します。 ボタンの状態が "disabled" の場合は無視されます。

class tkinter.Canvas(master=None, cnf={}, **kw)

   "Canvas" ウィジェットは構造化グラフィックスを実装します。 弧、線、
   楕円、多角形、長方形、テキスト、ビットマップ、画像、埋め込みウィン
   ドウなどの *項目* を任意の数だけ表示し、描画、移動、色の変更、イベ
   ントのバインドを行えます。 "Widget"、"XView"、"YView" を継承するた
   め、"xview()" と "yview()" で表示領域を水平・垂直方向にスクロールで
   きます。 ウィジェットと項目のオプションの全一覧は、Tk の "canvas"
   マニュアルページを参照してください。

   各項目は、作成時に割り当てられる一意の整数 *id* と、ゼロ個以上の文
   字列の *タグ* を持ちます。 タグは整数の形式ではない任意の文字列です
   。 同じタグを複数の項目で共有できるので、項目をまとめるのに便利です
   。 特別なタグ "'all'" はキャンバス内のすべての項目に一致し、
   "'current'" はマウスポインターの下で最も手前の項目に一致します。 ほ
   とんどのメソッドは *tagOrId* 引数を取り、単一の項目を指定する整数の
   ID、またはゼロ個以上の項目を指定するタグを渡せます。 Tk の "canvas"
   マニュアルページで説明されているように、タグは "&&"、"||"、"^"、"!"
   と括弧でタグを組み合わせた論理式でも指定できます。 単一の項目を操作
   するメソッドに、複数の項目に一致する *tagOrId* を渡すと、通常は表示
   リスト内で最も奥の、一致する項目を使います。

   項目は描画順を決める *表示リスト* で管理されます。 リストの後ろにあ
   る項目は、前にある項目より手前に描画されます。 新しい項目は最も手前
   に置かれます。 順序は "tag_raise()" と "tag_lower()" で変更できます
   。

   create_arc(*args, **kw)
   create_bitmap(*args, **kw)
   create_image(*args, **kw)
   create_line(*args, **kw)
   create_oval(*args, **kw)
   create_polygon(*args, **kw)
   create_rectangle(*args, **kw)
   create_text(*args, **kw)
   create_window(*args, **kw)

      対応する種類の項目を作成し、その整数の ID を返します。 各メソッ
      ドは "create_TYPE(coord..., **options)" という形式で呼び出します
      。 先頭の位置引数は項目を定義する座標 (個別の数、数のシーケンス
      、座標の組のいずれか) で、キーワード引数は項目固有のオプションを
      設定します。 座標と画面上の距離は、数 (ピクセルとして解釈されま
      す)、または単位の接尾辞 (ミリメートル、センチメートル、インチ、
      プリンターのポイントを表す "'m'"、"'c'"、"'i'"、"'p'") を付けた
      文字列で指定できますが、常にピクセル単位で保存され、返されます。

      項目の種類は次のとおりです。 "arc" は楕円の一部をなす弧状の領域
      で、外接する長方形の対角の 2 隅 "x1, y1, x2, y2" で定義します。
      "bitmap" は点 "x, y" に配置する 2 色のビットマップ、"image" は点
      "x, y" に配置する Tk 画像です。 "line" は点 "x1, y1, ..., xn,
      yn" を通る線や曲線、"oval" は長方形 "x1, y1, x2, y2" に内接する
      円や楕円、 "polygon" は点 "x1, y1, ..., xn, yn" を通る閉じた多角
      形、"rectangle" は隅の座標が "x1, y1, x2, y2" の長方形です。
      "text" は点 "x, y" に配置するテキスト文字列です。 "window" はキ
      ャンバスの点 "x, y" に埋め込む子ウィジェットで、*window* オプシ
      ョンで指定します。

      ほとんどの項目の種類は、共通の *標準項目オプション* と、種類ごと
      の固有のオプションを受け付けます。 オプション名は、先頭のハイフ
      ンを除いたキーワード引数で渡します。

      標準項目オプションは次のとおりです。

      *fill*
         項目の内部を塗りつぶす色、または *line* 項目の線や *text* 項
         目の文字を描画する色です。 空文字列 (*line* と *text* 以外の
         すべての種類でのデフォルト) は塗りつぶしません。

      *outline*
         項目の輪郭を描く色です。 空文字列は輪郭を描きません。

      *width*
         輪郭の幅で、デフォルトは "1.0" です。 *outline* が空なら効果
         はありません。

      *dash*
         輪郭の破線パターンを、ピクセル単位の線分の長さのシーケンス、
         または "'.'"、"','"、"'-'"、"'_'" と空白からなる文字列で指定
         します。 空のパターン (デフォルト) は実線の輪郭を描きます。

      *dashoffset*
         *dash* パターン内の開始オフセットをピクセル単位で指定します。
         *dash* パターンがなければ無視されます。

      *stipple*
         項目を塗りつぶす際の点描パターンとして使うビットマップです。
         十分にサポートされているのは X11 だけです。

      *outlinestipple*
         輪郭を描く際の点描パターンとして使うビットマップです。
         *outline* が空なら効果はありません。

      *offset*, *outlineoffset*
         塗りつぶしと輪郭の点描パターンのオフセットを、"'x,y'"、または
         "'n'"、"'se'"、"'center'" などの位置で指定します。 点描のオフ
         セットは X11 でのみサポートされます。

      *state*
         この項目について、キャンバスの状態を上書きします。 "'normal'"
         、"'disabled'"、"'hidden'" のいずれかです。

      *tags*
         項目に関連付ける単一のタグ、またはタグのシーケンスです。 既存
         のタグは置き換えられます。

      これらのオプションの多くには、*active...* や *disabled...* の形
      のオプション (*activefill*、*disabledfill*、*activewidth*、
      *disableddash*、*activeoutline*、*disabledstipple* など) があり
      ます。 項目がアクティブ (マウスポインターの下) のときや無効な状
      態のときに、基本のオプションを上書きします。

      次の種類の項目は、追加のオプションをサポートします。

      "arc" 項目:

      *start*
         弧の角度範囲の始点です。 時計の 3 時の方向から反時計回りに、
         度単位で測ります。

      *extent*
         角度範囲の大きさです。 *start* から反時計回りに、度単位で測り
         ます。

      *style*
         弧の描き方を "'pieslice'" (デフォルト)、"'chord'"、"'arc'" で
         指定します。

      "line" 項目:

      *arrow*
         矢印の先端を描く位置を "'none'" (デフォルト)、"'first'"、
         "'last'"、"'both'" で指定します。

      *arrowshape*
         矢印の先端の形を指定する、3 つの距離のシーケンスです。

      *capstyle*
         線の端の描き方を "'butt'" (デフォルト)、"'projecting'"、
         "'round'" で指定します。

      *joinstyle*
         線の頂点の描き方を "'round'" (デフォルト)、"'bevel'"、
         "'miter'" で指定します。

      *smooth*
         平滑化の方法です。 偽値 (デフォルト) は平滑化せず、
         "'true'"/"'bezier'" または "'raw'" は曲線として描きます。

      *splinesteps*
         *smooth* が有効なときに、各スプラインを近似する線分の数です。

      "polygon" 項目:

      *joinstyle*, *smooth*, *splinesteps*
         "line" 項目と同じで、多角形の輪郭に適用されます。

      "text" 項目:

      *text*
         表示する文字列です。 改行文字は新しい行を開始します。

      *font*
         テキストに使うフォントです。

      *justify*
         行の揃え方を "'left'" (デフォルト)、"'right'"、"'center'" で
         指定します。

      *anchor*
         指定点に対してテキストをどう配置するかを指定します。 デフォル
         トは "'center'" です。

      *width*
         行の最大長です。 ゼロ以外の場合、空白の位置で行を折り返します
         。

      *angle*
         配置の基準点を中心としてテキストを反時計回りに回転する角度を
         、"0.0" から "360.0" の範囲の度単位で指定します (デフォルト
         "0.0")。

      *underline*
         下線を付ける文字のインデックスです。 付けない場合は "-1" です
         。

      "bitmap" 項目:

      *bitmap*
         表示するビットマップです。

      *anchor*
         指定点に対してビットマップをどう配置するかを指定します。

      *background*, *foreground*
         ビットマップの "0" と "1" のピクセルに使う色です。
         *background* を空にすると "0" のピクセルは透明になります。 両
         方に *active...* と *disabled...* の形のオプションがあり、
         *bitmap* にも *activebitmap* と *disabledbitmap* があります。

      "image" 項目:

      *image*
         表示する Tk 画像です。 あらかじめ画像のプロトコルで作成してお
         きます。

      *anchor*
         指定点に対して画像をどう配置するかを指定します。

      Both options have *active...* and *disabled...* variants
      (*activeimage*, *disabledimage*) used in the active and disabled
      states.

      "window" 項目:

      *window*
         埋め込むウィジェットです。 キャンバス、またはその祖先のいずれ
         かの子でなければならず、トップレベルウィンドウは使えません。

      *anchor*
         指定点に対してウィンドウをどう配置するかを指定します。

      *width*, *height*
         ウィンドウに割り当てるサイズです。 ゼロ (デフォルト) の場合は
         、ウィンドウが要求するサイズを使います。

      "oval" と "rectangle" の項目には種類固有のオプションはなく、標準
      項目オプションだけを使います。

      注釈:

        Tk 8.6 で "text" 項目に *angle* オプションが追加されました。

   coords(tagOrId)
   coords(tagOrId, coordList, /)
   coords(tagOrId, /, *coordList)

      項目の座標を取得または変更します。 *tagOrId* だけを指定すると、
      それに一致する項目 (複数あれば最初の項目) の座標を浮動小数点数の
      リストで返します。 新しい座標を渡すと、その項目の座標を置き換え
      ます。 "create_*" メソッドと同様に、座標は個別の数、単一のシーケ
      ンス、座標の組として渡せます。 指定時の単位にかかわらず、返され
      る座標は常にピクセル単位です。 長方形、楕円、弧では、左、上、右
      、下の順になります。

      バージョン 3.12 で変更: 引数が平坦化されるようになりました。
      "create_*" メソッドと同様に、座標を個別の引数、単一のシーケンス
      、2 つずつの組として渡せます。

   move(tagOrId, xAmount, yAmount, /)

      *tagOrId* で指定した各項目のすべての x 座標に *xAmount*、すべて
      の y 座標に *yAmount* を加え、キャンバスの座標空間で移動します。

   moveto(tagOrId, x='', y='')

      *tagOrId* で指定した項目を移動し、一致する最も奥の項目の最初の座
      標の組 (境界矩形の左上隅) が位置 (*x*, *y*) になるようにします。
      *x* や *y* を空文字列にすると、対応する座標は変更しません。 一致
      するすべての項目の相対位置は保たれます。

      Added in version 3.8.

   scale(tagOrId, xOrigin, yOrigin, xScale, yScale, /)

      *tagOrId* で指定したすべての項目の座標を、キャンバスの座標空間で
      拡大・縮小します。 各 x 座標は *xOrigin* からの距離が *xScale*
      倍になるように、各 y 座標は *yOrigin* からの距離が *yScale* 倍に
      なるように変更します (倍率 "1.0" は座標を変更しません)。

   delete(*tagOrIds)

      *tagOrIds* 引数で指定した各項目を削除します。

   dchars(tagOrId, first, /)
   dchars(tagOrId, first, last, /)

      *tagOrId* で指定した各項目から、*first* から *last* まで (両端を
      含む) の文字 (テキスト項目) または座標 (線や多角形の項目) を削除
      します。 *last* のデフォルトは *first* です。 インデックスをサポ
      ートしない項目は、この操作を無視します。

   insert(tagOrId, beforeThis, string, /)

      *tagOrId* で指定した各項目で、インデックス *beforeThis* の文字ま
      たは座標の直前に *string* を挿入します。 線や多角形の項目では、
      *string* は有効な座標のシーケンスでなければなりません。

   itemcget(tagOrId, option)

      *tagOrId* に一致する項目 (複数あれば最も奥の項目) の、設定オプシ
      ョン *option* の現在の値を返します。 "cget()" と似ていますが、個
      々の項目に適用されます。

   itemconfigure(tagOrId, cnf=None, **kw)

      *tagOrId* で指定した項目の設定オプションを取得または変更します。
      "configure()" に対応する操作ですが、キャンバス全体ではなく個々の
      項目に適用されます。 オプションなしでは、最初に一致した項目の現
      在のオプションを説明する辞書を返します。 それ以外の場合は、一致
      するすべての項目に指定されたオプションを設定します。 有効なオプ
      ションは、対応する "create_*" メソッドが受け付けるものです。
      "itemconfig()" は "itemconfigure()" の別名です。

   type(tagOrId)

      *tagOrId* に一致する項目 (複数あれば最初の項目) の種類を、
      "'rectangle'" や "'text'" などの値として返します。 どの項目にも
      一致しなければ "None" を返します。

   gettags(tagOrId, /)

      *tagOrId* に一致する項目 (複数あれば表示リスト順で最初の項目) に
      関連付けられたタグのタプルを返します。 一致する項目がない場合や
      、項目にタグがない場合は、空のタプルを返します。

   dtag(tagOrId, /)
   dtag(tagOrId, tagToDelete, /)

      *tagOrId* で指定した各項目から、タグ *tagToDelete* (デフォルトは
      *tagOrId*) を削除します。 そのタグを持たない項目には影響しません
      。

   addtag(newtag, searchSpec, /, *args)

      検索指定 *searchSpec* (と追加の *args*) で選ばれた各項目に、タグ
      *newtag* を追加します。 *searchSpec* は "'above'"、"'all'"、
      "'below'"、"'closest'"、"'enclosed'"、"'overlapping'"、
      "'withtag'" のいずれかです。 以下の "addtag_*" メソッドは、それ
      ぞれの形式を使いやすくするラッパーです。

   addtag_above(newtag, tagOrId)

      表示リストで *tagOrId* のすぐ手前 (後) の項目にタグ *newtag* を
      追加します。

   addtag_all(newtag)

      キャンバス内のすべての項目にタグ *newtag* を追加します。

   addtag_below(newtag, tagOrId)

      表示リストで *tagOrId* のすぐ奥 (前) の項目にタグ *newtag* を追
      加します。

   addtag_closest(newtag, x, y, halo=None, start=None)

      点 (*x*, *y*) に最も近い項目にタグ *newtag* を追加します。
      *halo* を指定すると、その点からその距離以内の項目は、点と重なっ
      ているものとして扱います。 *start* (タグまたは ID) を指定すると
      、最も近い項目のうち、表示リストで *start* より奥にあるものの中
      で最も手前の項目を選びます。 これを使って、最も近い項目を順にた
      どれます。

   addtag_enclosed(newtag, x1, y1, x2, y2)

      長方形 (*x1*, *y1*, *x2*, *y2*) に完全に含まれるすべての項目にタ
      グ *newtag* を追加します。 *x1* <= *x2*、*y1* <= *y2* とします。

   addtag_overlapping(newtag, x1, y1, x2, y2)

      長方形 (*x1*, *y1*, *x2*, *y2*) と重なる、またはその中に含まれる
      すべての項目にタグ *newtag* を追加します。 *x1* <= *x2*、*y1* <=
      *y2* とします。

   addtag_withtag(newtag, tagOrId)

      *tagOrId* で指定したすべての項目にタグ *newtag* を追加します。

   find(searchSpec, /, *args)

      検索指定 *searchSpec* (と追加の *args*) で選ばれたすべての項目の
      ID を、重なり順で最も奥から並べたタプルで返します。 検索指定は
      "addtag()" が受け付ける形式のいずれかです。 以下の "find_*" メソ
      ッドは、より便利なラッパーです。

   find_above(tagOrId)

      表示リストで *tagOrId* のすぐ手前の項目の ID を含むタプルを返し
      ます。

   find_all()

      キャンバス内のすべての項目の ID を、重なり順のタプルで返します。

   find_below(tagOrId)

      表示リストで *tagOrId* のすぐ奥の項目の ID を含むタプルを返しま
      す。

   find_closest(x, y, halo=None, start=None)

      点 (*x*, *y*) に最も近い項目の ID を含むタプルを返します。
      *halo* と *start* の解釈は "addtag_closest()" と同じです。

   find_enclosed(x1, y1, x2, y2)

      長方形 (*x1*, *y1*, *x2*, *y2*) に完全に含まれるすべての項目の
      ID を、タプルで返します。

   find_overlapping(x1, y1, x2, y2)

      長方形 (*x1*, *y1*, *x2*, *y2*) と重なる、またはその中に含まれる
      すべての項目の ID を、タプルで返します。

   find_withtag(tagOrId)

      *tagOrId* で指定したすべての項目の ID を、タプルで返します。

   tag_raise(tagOrId, aboveThis=None, /)

      *tagOrId* で指定したすべての項目を、表示リスト内の *aboveThis*
      で指定した項目のすぐ手前に移動します。 *aboveThis* を省略すると
      最も手前に移動します。 複数の項目を移動する場合、相対的な順序は
      保ちます。 埋め込みウィンドウの項目には効果がなく、その重なり順
      は "Misc.tkraise()" と "Misc.lower()" で制御します。 "lift()" と
      "tkraise()" は "tag_raise()" の別名です。

   tag_lower(tagOrId, belowThis=None, /)

      *tagOrId* で指定したすべての項目を、表示リスト内の *belowThis*
      で指定した項目のすぐ奥に移動します。 *belowThis* を省略すると最
      も奥に移動します。 複数の項目を移動する場合、相対的な順序は保ち
      ます。 埋め込みウィンドウの項目には効果がありません。 "lower()"
      は "tag_lower()" の別名です。

      注釈:

        "Canvas" の "tkraise()"/"lift()" と "lower()" は、キャンバス内
        の項目の重なり順を変更します。 継承した
        "Misc.tkraise()"/"Misc.lift()" と "Misc.lower()" を隠すため、
        ウィジェット自体の重なり順を変えるこれらのメソッドは使えません
        。

   tag_bind(tagOrId, sequence=None, func=None, add=None)

      *tagOrId* で指定したすべての項目について、イベント *sequence* に
      コールバック *func* をバインドし、いずれかの項目でそのイベントが
      発生するたびに呼び出すようにします。 "Widget.bind" と似ています
      が、ウィジェット全体ではなくキャンバスの項目を対象とし、バインド
      できるのはマウス、キーボード、仮想イベントだけです。 マウスイベ
      ントは現在の項目、キーボードイベントはフォーカスを持つ項目に送ら
      れます ("focus()" を参照)。 *add* が真なら、同じシーケンスの既存
      のバインディングを置き換えずに、新しいものを追加します。 バイン
      ドした関数の識別子を返し、これを "tag_unbind()" に渡せます。

   tag_unbind(tagOrId, sequence, funcid=None)

      *tagOrId* で指定したすべての項目について、イベント *sequence* の
      バインディングを解除します。 *funcid* を指定すると、そのコールバ
      ック ("tag_bind()" の戻り値で指定) だけをバインド解除し、登録も
      解除します。

      バージョン 3.13 で変更: *funcid* を指定した場合、そのコールバッ
      クだけをバインド解除するようになりました。

   bbox(tagOrId, /, *tagOrIds)

      *tagOrId* と追加の *tagOrIds* で指定したすべての項目を含む、おお
      よその境界矩形を、ピクセル単位の 4 要素のタプル "(x1, y1, x2,
      y2)" で返します。 実際の境界矩形より数ピクセル大きいことがありま
      す。 一致する項目がない場合や、一致した項目に表示する内容がない
      場合は "None" を返します。

      継承した "Misc.bbox()" を隠します。 グリッドの境界矩形には
      "grid_bbox()" を使ってください。

   canvasx(screenx, gridspacing=None)

      ウィンドウの x 座標 *screenx* に表示されている、キャンバスの x
      座標を返します。 *gridspacing* を指定すると、最も近い
      *gridspacing* の倍数に丸めます。

   canvasy(screeny, gridspacing=None)

      ウィンドウの y 座標 *screeny* に表示されている、キャンバスの y
      座標を返します。 *gridspacing* を指定すると、最も近い
      *gridspacing* の倍数に丸めます。

   focus()
   focus(tagOrId, /)

      *tagOrId* を指定すると、一致する項目のうち挿入カーソルをサポート
      する最初の項目に、キャンバスのキーボードフォーカスを設定します。
      該当する項目がなければ、フォーカスは変更しません。 *tagOrId* が
      空文字列なら、どの項目もフォーカスを持たない状態に戻します。 引
      数なしでは現在フォーカスを持つ項目の ID を返し、なければ空文字列
      を返します。 挿入カーソルが表示されるのは、その項目がフォーカス
      を持ち、かつキャンバス自体にも入力フォーカスがあるときだけです。

      継承した "Misc.focus()" を隠します。 ウィジェット自体にフォーカ
      スを設定するには "focus_set()" を使ってください。

   icursor(tagOrId, index, /)

      *tagOrId* で指定した項目の挿入カーソルを、*index* で指定した文字
      の直前に設定します。 挿入カーソルをサポートしない項目には影響し
      ません。 カーソルが表示されるのは項目がフォーカスを持つときだけ
      ですが、位置はいつでも設定できます。

   index(tagOrId, index, /)

      位置を表す文字列 *index* に対応する、*tagOrId* 内の数値インデッ
      クスを整数として返します。 テキスト項目では文字、線や多角形の項
      目では座標のインデックスです。 *tagOrId* が複数の項目に一致する
      場合、インデックスをサポートする最初の項目を使います。

   select_adjust(tagOrId, index)

      *tagOrId* 内の選択範囲の端のうち、*index* に近い方を *index* ま
      で移動し、もう一方の端を今後の "select_to()" の起点にします。 現
      在の選択範囲が *tagOrId* 内にない場合は、"select_to()" と同じ動
      作をします。

   select_clear()

      このキャンバス内に選択範囲があればクリアします。 そうでなければ
      何もしません。

   select_from(tagOrId, index)

      *tagOrId* で指定した項目の、*index* で指定した文字の直前に、選択
      範囲の起点を設定します。 選択範囲自体は変更せず、今後の
      "select_to()" で固定する端を設定します。

   select_item()

      選択範囲を持つ項目の ID を返します。 このキャンバス内に選択範囲
      がなければ "None" を返します。 "find()" や "find_*" メソッドとは
      異なり、ID は整数ではなく文字列として返します。

   select_to(tagOrId, index)

      *tagOrId* の選択範囲を、選択の起点から *index* までの文字に設定
      します (*index* を含みます)。 起点は最後に呼び出した
      "select_adjust()" または "select_from()" で設定されたものです。

   scan_mark(x, y)

      後で "scan_dragto()" を呼び出すために、*x*、*y* と現在の表示領域
      を記録します。 通常はウィジェット内のマウスボタンの押下にバイン
      ドします。

   scan_dragto(x, y, gain=10)

      *x*、*y* と、最後の "scan_mark()" に渡した座標の差の *gain* 倍だ
      け、キャンバスをスクロールします。 通常はウィジェット内のマウス
      移動イベントにバインドし、ウィンドウ内でキャンバスを高速にドラッ
      グする効果を生みます。

   postscript(cnf={}, **kw)

      キャンバスの一部または全体を、PostScript (Encapsulated
      PostScript バージョン 3.0) で表したものを生成します。 *file* ま
      たは *channel* オプションを指定した場合はそこに書き込んで空文字
      列を返し、そうでなければ文字列として返します。 デフォルトでは、
      ウィンドウ内で現在見えている領域だけを生成するため、通常は事前に
      "update()" を呼び出すか、*width* と *height* を指定する必要があ
      ります。 サポートするオプションには *colormap*、*colormode*、
      *file*、*fontmap*、*height*、*pageanchor*、*pageheight*、
      *pagewidth*、*pagex*、*pagey*、*rotate*、*width*、*x*、*y* があ
      ります。

class tkinter.Checkbutton(master=None, cnf={}, **kw)

   "Checkbutton" ウィジェットは、テキスト文字列、ビットマップ、画像を
   四角い選択マークとともに表示し、押すと選択状態を切り替えます。 通常
   のボタンのすべての動作に加えて、選択状態を持ちます。 選択すると選択
   マークにチェックが付き、対応する変数が "onvalue" に設定されます。
   選択を解除すると選択マークが空になり、変数が "offvalue" に設定され
   ます。 "Widget" を継承します。 標準のウィジェットオプションに加えて
   、*variable*、*onvalue*、*offvalue*、*command* など、Tk の
   "checkbutton" マニュアルページに記載されたオプションを受け付けます
   。

   invoke()

      ユーザーがマウスでチェックボタンを押したときと同じ動作をします。
      ボタンの選択状態を切り替え、対応するコマンドがあれば呼び出します
      。 コマンドの結果を返し、コマンドがなければ空文字列を返します。
      チェックボタンの状態が "disabled" の場合は無視されます。

   select()

      チェックボタンを選択し、対応する変数を "onvalue" に設定します。

   deselect()

      チェックボタンの選択を解除し、対応する変数を "offvalue" に設定し
      ます。

   toggle()

      ボタンの選択状態を切り替え、新しい状態を反映するように再表示し、
      対応する変数も変更します。

   flash()

      アクティブ時と通常時の色を交互に使って数回再表示し、チェックボタ
      ンを点滅させます。 点滅後は、呼び出し時と同じ通常状態またはアク
      ティブ状態に戻します。 チェックボタンの状態が "disabled" の場合
      は無視されます。

class tkinter.Entry(master=None, cnf={}, **kw)

   "Entry" ウィジェットは 1 行のテキストを表示し、ユーザーが編集できる
   ようにします。 "Widget" と "XView" を継承します。 ウィンドウに収ま
   らない長い文字列も保持できるため、"xview()" による横スクロールをサ
   ポートしています。

   標準のウィジェットオプションに加え、Tk の "entry" マニュアルページ
   に記載されたオプションを受け付けます。 代表的なものには、
   *textvariable* (入力内容と同期する変数の名前)、*show* (設定すると各
   文字を実際の文字の代わりに指定した文字で表示し、パスワード入力など
   に使える)、 *validate* と *validatecommand* (組み合わせて使うことで
   コールバックに編集を許可・拒否させる)、*state* ("'normal'"、
   "'disabled'"、"'readonly'" のいずれか) があります。

   以下の多くのメソッドは、入力文字列内の文字を指定する *index* 引数を
   取ります。 Tk の "entry" マニュアルページで説明されているように、
   *index* には、0 から数えた数値、"'insert'" (挿入カーソルの直後の文
   字)、 "'end'" (最後の文字の直後)、"'anchor'" (選択範囲の起点)、
   "'sel.first'" と "'sel.last'" (選択範囲の両端)、 "@x" (ウィンドウ内
   のピクセル単位の x 座標 *x* にある文字) を指定できます。 範囲外のイ
   ンデックスは最も近い有効な値に調整されます。

   delete(first, last=None)

      インデックス *first* から *last* の直前までの文字を削除します。
      *last* を省略すると、*first* の 1 文字だけを削除します。

   get()

      入力ウィジェットの現在の文字列を返します。

   insert(index, string)

      *index* で指定した文字の直前に *string* を挿入します。

   icursor(index)

      *index* で指定した文字の直前に挿入カーソルを表示するようにします
      。

   index(index)

      *index* に対応する数値インデックスを返します。

   selection_adjust(index)

      選択範囲の端のうち、*index* で指定した文字に近い方を、その文字を
      含む位置まで移動します。 もう一方の端は、今後の "selection_to()"
      の起点になります。 入力ウィジェット内に選択範囲がなければ、
      *index* と最後に設定した起点の間に、両端を含む新しい選択範囲を作
      ります。 "select_adjust()" は "selection_adjust()" の別名です。

   selection_clear()

      選択範囲が現在このウィジェット内にあればクリアします。 このウィ
      ジェット内になければ何もしません。 "select_clear()" は
      "selection_clear()" の別名です。

      注釈:

        X のセレクションをクリアする、継承した
        "Misc.selection_clear()" を隠します。 そのメソッドは "Entry"
        では使えません。

   selection_from(index)

      選択範囲を変更せずに、選択の起点を *index* で指定した文字の直前
      に設定します。 "select_from()" は "selection_from()" の別名です
      。

   selection_present()

      入力ウィジェット内に選択された文字があれば "True"、そうでなけれ
      ば "False" を返します。 "select_present()" は
      "selection_present()" の別名です。

   selection_range(start, end)

      *start* の文字から *end* の直前の文字までを選択範囲に設定します
      。 *end* が *start* と同じ文字かそれより前の文字を指す場合は、選
      択範囲をクリアします。 "select_range()" は "selection_range()"
      の別名です。

   selection_to(index)

      選択の起点と *index* の間に選択範囲を設定します。 *index* が起点
      より前なら *index* から起点の直前まで、後なら起点から *index* の
      直前までを選択します。 同じ位置なら何もしません。 起点は、最後の
      "selection_from()" または "selection_adjust()" で設定されたもの
      です。 入力ウィジェット内に選択範囲がなければ、最後に設定した起
      点を使って新しく作成します。 "select_to()" は "selection_to()"
      の別名です。

   scan_mark(x)

      後で "scan_dragto()" を呼び出すために、*x* と入力ウィンドウの現
      在の表示領域を記録します。 通常はウィジェット内のマウスボタンの
      押下に対応付けます。

   scan_dragto(x)

      *x* と最後の "scan_mark()" に渡した *x* の差を計算し、その差の
      10 倍だけ表示領域を左右に移動します。 通常はマウス移動イベントに
      対応付け、入力内容をウィンドウ内で高速にドラッグする効果を生みま
      す。

class tkinter.Frame(master=None, cnf={}, **kw)

   "Frame" ウィジェットは単純なコンテナーです。 主に、複雑なウィンドウ
   配置のために、間隔を設けたり、他のウィジェットを格納したりするため
   に使います。 自身の見た目は背景と、必要に応じてフレームを浮き上がっ
   たり沈んだりして見せる立体的な境界だけです。 "Widget" を継承します
   。 オプションの全一覧は Tk の "frame" マニュアルページを参照してく
   ださい。

class tkinter.Label(master=None, cnf={}, **kw)

   "Label" ウィジェットは、操作を受け付けないテキスト文字列、ビットマ
   ップ、画像を表示します。 表示するテキストは *text* オプションで設定
   するか、*textvariable* で変数に結び付けます。 画像は *image* オプシ
   ョンで表示できます。 テキストはすべて同じフォントでなければなりませ
   んが、複数行にでき、*underline* オプションで 1 文字に下線を付けられ
   ます。 "Widget" を継承します。 オプションの全一覧は Tk の "label"
   マニュアルページを参照してください。

class tkinter.LabelFrame(master=None, cnf={}, **kw)

   "LabelFrame" ウィジェットは、"Frame" の機能にラベル表示機能を加えた
   コンテナーです。 ラベルのテキストは *text*、位置は *labelanchor* で
   設定します。 または、*labelwidget* に任意のウィジェットを指定し、ラ
   ベルとして使えます。 "Widget" を継承します。 オプションの全一覧は
   Tk の "labelframe" マニュアルページを参照してください。

class tkinter.Listbox(master=None, cnf={}, **kw)

   "Listbox" ウィジェットは、1 行のテキスト項目を一行ずつ並べた一覧を
   表示し、ユーザーが 1 つ以上を選べるようにします。 選択の動作は
   *selectmode* オプションで決まり、"browse" (デフォルト、最大 1 項目
   でマウスのドラッグで選択を移動できる)、 "single" (最大 1 項目)、
   "multiple" (任意の数の項目を個別に切り替える)、"extended" (離れた範
   囲を含め、任意の数の項目をクリックとドラッグで選択する) のいずれか
   です。 "Widget"、"XView"、"YView" を継承するため、"xview()" と
   "yview()" で表示領域を水平・垂直方向にスクロールできます。 オプショ
   ンの全一覧は Tk の "listbox" マニュアルページを参照してください。

   多くのメソッドは、特定の項目を指定する *index* 引数を取ります。 Tk
   の "listbox" マニュアルページで説明されているように、*index* には、
   先頭を 0 とする数値インデックス、 "'active'" ("activate()" で設定さ
   れた位置カーソルのある項目)、"'anchor'" ("selection_anchor()" で設
   定された選択の起点)、 "'end'" (最後の項目。ただし "index()" と
   "insert()" ではその直後の位置)、 "@x,y" (リストボックスのウィンドウ
   内のピクセル座標 *x*, *y* にある項目) を指定できます。 *first* と
   *last* という名前の引数も、同じ形式のインデックスです。

   insert(index, *elements)

      *index* で指定した項目の直前に、*elements* を新しい項目として挿
      入します。 *index* が "'end'" の場合は、リストの末尾に追加します
      。

   delete(first, last=None)

      *first* から *last* まで、両端を含めて項目を削除します。 *last*
      を省略すると *first* と同じ値になり、1 項目だけを削除します。

   get(first, last=None)

      *last* を省略すると、*first* で指定した項目の内容を返します。
      *first* が存在しない項目を指す場合は空文字列を返します。 *last*
      を指定すると、*first* から *last* まで、両端を含むすべての項目の
      タプルを返します。

   size()

      リストボックスの項目の総数を返します。

      継承した "Misc.size()" を隠します。 グリッドのサイズには
      "grid_size()" を使ってください。

   index(index)

      Return the integer index value corresponding to *index*, or
      "None" if *index* is out of range. If *index* is "'end'", the
      result is a count of the number of items in the listbox (not the
      index of the last item).

   bbox(index)

      *index* で指定した項目のテキストの境界矩形を、ウィジェットを基準
      としたピクセル単位のタプル "(x, y, width, height)" で返します。
      項目のどの部分も画面に表示されていない場合や、*index* が存在しな
      い項目を指す場合は "None" を返します。 一部だけが見えている場合
      でも、見えていない部分を含む項目全体の領域を返します。

      継承した "Misc.bbox()" を隠します。 グリッドの境界矩形には
      "grid_bbox()" を使ってください。

   nearest(y)

      リストボックスのウィンドウ内の y 座標を指定し、その座標に最も近
      い表示中の項目のインデックスを返します。

   see(index)

      *index* で指定した項目が見えるように、表示領域を調整します。 す
      でに見えている場合は何もしません。 項目がウィンドウの端に近けれ
      ば、その端で見えるだけの最小限のスクロールを行い、そうでなければ
      項目が中央になるようにスクロールします。

   activate(index)

      *index* で指定した項目をアクティブにします。 *index* が範囲外な
      ら、最も近い項目をアクティブにします。 ウィジェットに入力フォー
      カスがあるとき、アクティブな項目は *activestyle* オプションに従
      って描画されます。 そのインデックスは "'active'" インデックスで
      取得できます。

   curselection()

      現在選択されているすべての項目の数値インデックスを含むタプルを返
      します。 選択された項目がなければ空のタプルを返します。

   selection_anchor(index)

      *index* で指定した項目を選択の起点にします。 存在しない項目を指
      す場合は、最も近い項目を使います。 起点は、マウスで選択範囲を広
      げている間に固定される端で、後から "'anchor'" インデックスで参照
      できます。 "select_anchor()" は "selection_anchor()" の別名です
      。

   selection_clear(first, last=None)

      *first* から *last* まで (両端を含む) の範囲で、選択されている項
      目の選択を解除します。 範囲外の項目の選択状態は変更しません。
      "select_clear()" は "selection_clear()" の別名です。

      注釈:

        X のセレクションをクリアする、継承した
        "Misc.selection_clear()" を隠します。 そのメソッドは "Listbox"
        では使えません。

   selection_includes(index)

      *index* で指定した項目が現在選択されていれば "True"、そうでなけ
      れば "False" を返します。 "select_includes()" は
      "selection_includes()" の別名です。

   selection_set(first, last=None)

      *first* から *last* まで (両端を含む) のすべての項目を選択します
      。 範囲外の項目の選択状態には影響しません。 "select_set()" は
      "selection_set()" の別名です。

   itemcget(index, option)

      *index* で指定した項目の設定オプション *option* の現在の値を返し
      ます。

   itemconfigure(index, cnf=None, **kw)

      *index* で指定した項目の設定オプションを取得または変更します。
      "configure()" に対応する操作ですが、リストボックス全体ではなく個
      々の項目に適用されます。 オプションなしでは、項目の現在のオプシ
      ョンを説明する辞書を返します。 それ以外の場合は指定されたオプシ
      ョンを設定します。 サポートする項目オプションは *background*、
      *foreground*、*selectbackground*、*selectforeground* です。
      "itemconfig()" は "itemconfigure()" の別名です。

   scan_mark(x, y)

      後で "scan_dragto()" を呼び出すために、*x*、*y* と現在の表示領域
      を記録します。 通常はウィジェット内のマウスボタンの押下にバイン
      ドします。

   scan_dragto(x, y)

      *x*、*y* と最後の "scan_mark()" に渡した座標の差の 10 倍だけ、リ
      ストボックスをスクロールします。 通常はウィジェット内のマウス移
      動イベントにバインドし、ウィンドウ内でリストを高速にドラッグする
      効果を生みます。

class tkinter.Menu(master=None, cnf={}, **kw)

   "Menu" ウィジェットは項目を縦に並べて表示します。 各項目は、コマン
   ド、チェックボタン、ラジオボタン、カスケード (対応するサブメニュー
   を表示する)、区切り線のいずれかです。 メニューは、トップレベルウィ
   ンドウのメニューバー、カスケード項目やメニューボタンから表示するプ
   ルダウンメニュー、ポップアップメニューとして使います。 "Widget" を
   継承します。

   項目に関する多くのメソッドは、操作対象の項目を指定する *index* 引数
   を取ります。 Tk の "menu" マニュアルページで説明されているように、
   *index* には、先頭を 0 とする数値インデックス、"'active'" (現在アク
   ティブな項目)、 "'end'" または "'last'" (一番下の項目)、"'none'" (
   どの項目も指さず、Tcl では "{}" と表す)、 "@y" (メニューウィンドウ
   内のピクセル単位の y 座標 *y* にある項目)、または上から順に項目のラ
   ベルと照合するパターンを指定できます。

   add(itemType, cnf={}, **kw)

      メニューの末尾に新しい項目を追加します。 *itemType* は
      "'command'"、"'cascade'"、"'checkbutton'"、"'radiobutton'"、
      "'separator'" のいずれかで、新しい項目の種類を決めます。 残りの
      オプションで項目を設定します。 便宜メソッド "add_command()"、
      "add_cascade()"、"add_checkbutton()"、"add_radiobutton()"、
      "add_separator()" は、対応する *itemType* を指定してこのメソッド
      を呼び出します。

      項目は次のオプションで設定します。 ただし、すべてのオプションが
      すべての種類の項目に使えるわけではありません (区切り線はどれも受
      け付けません)。

      *label*
         項目に表示するテキストです。

      *command*
         項目を実行するときに呼び出す関数です (コマンド、チェックボタ
         ン、ラジオボタンの項目)。

      *accelerator*
         ショートカットキーを示すために項目の右側に表示する文字列です
         。 これ自体ではキーのバインディングは作成されません。

      *underline*
         キーボードで移動するために下線を付ける、ラベル内の文字のイン
         デックスです。

      *state*
         "'normal'"、"'active'"、"'disabled'" のいずれかです。

      *image*
         テキストラベルの代わりに、またはテキストラベルとともに表示す
         る画像です。

      *compound*
         テキストに対する画像の位置を "'none'" (デフォルト)、"'text'"
         、"'image'"、"'top'"、"'bottom'"、"'left'"、"'right'" で指定
         します。

      *bitmap*
         テキストラベルの代わりに表示するビットマップです。

      *font*
         テキストに使うフォントです。

      *background*, *foreground*
         項目の通常状態の背景色と前景色です (macOS では無視されます)。

      *activebackground*, *activeforeground*
         項目がアクティブなときの背景色と前景色です (macOS では無視さ
         れます)。

      *columnbreak*
         真なら、直前の項目の下に配置する代わりに、新しい列を開始しま
         す。

      *hidemargin*
         真なら、項目の周囲の標準の余白を省きます。 メニューをパレット
         として使うときに便利です。

      *menu*
         カスケード項目が表示するサブメニューです。 このメニューの子で
         なければなりません。

      *variable*
         チェックボタンまたはラジオボタンの項目に対応する変数です。

      *onvalue*, *offvalue*
         チェックボタンの項目を選択または選択解除したときに、
         *variable* に格納する値です。

      *value*
         ラジオボタンの項目を選択したときに、*variable* に格納する値で
         す。

      *indicatoron*
         チェックボタンまたはラジオボタンの項目の選択マークを表示する
         かどうか。

      *selectcolor*
         チェックボタンまたはラジオボタンの項目が選択されたときの、選
         択マークの色です。

      *selectimage*
         *image* も指定されている場合に、チェックボタンまたはラジオボ
         タンの項目が選択されたときに表示する画像です。

   add_cascade(cnf={}, **kw)

      メニューの末尾に新しいカスケード項目を追加します。 カスケード項
      目には *menu* オプションで指定するサブメニューが対応し、このメニ
      ューの子でなければなりません。 項目を開くと、その隣にサブメニュ
      ーを表示します。

   add_checkbutton(cnf={}, **kw)

      メニューの末尾に新しいチェックボタン項目を追加します。 実行する
      と *onvalue* と *offvalue* を切り替え、結果を対応する *variable*
      に格納し、選択状態を示すマークを表示します。

   add_command(cnf={}, **kw)

      メニューの末尾に新しいコマンド項目を追加します。 コマンド項目は
      ボタンのように動作し、実行すると *command* オプションで指定した
      コールバックを呼び出します。

   add_radiobutton(cnf={}, **kw)

      メニューの末尾に新しいラジオボタン項目を追加します。 同じ
      *variable* を共有するラジオボタン項目は、同時に一つだけを選択で
      きるグループになります。 項目を選択すると、その *value* を変数に
      格納します。

   add_separator(cnf={}, **kw)

      メニューの末尾に区切り線を追加します。 水平な仕切り線として表示
      され、アクティブ化も実行もできません。

   insert(index, itemType, cnf={}, **kw)

      "add()" と同じですが、新しい項目をメニューの末尾に追加せず、
      *index* で指定した項目の直前に挿入します。 *itemType* は
      "'command'"、"'cascade'"、"'checkbutton'"、"'radiobutton'"、
      "'separator'" のいずれかです。 便宜メソッド "insert_command()"、
      "insert_cascade()"、"insert_checkbutton()"、
      "insert_radiobutton()"、"insert_separator()" は、対応する
      *itemType* を指定してこのメソッドを呼び出します。

   insert_cascade(index, cnf={}, **kw)

      *index* で指定した項目の直前に、新しいカスケード項目を挿入します
      ("add_cascade()" を参照)。

   insert_checkbutton(index, cnf={}, **kw)

      *index* で指定した項目の直前に、新しいチェックボタン項目を挿入し
      ます ("add_checkbutton()" を参照)。

   insert_command(index, cnf={}, **kw)

      *index* で指定した項目の直前に、新しいコマンド項目を挿入します
      ("add_command()" を参照)。

   insert_radiobutton(index, cnf={}, **kw)

      *index* で指定した項目の直前に、新しいラジオボタン項目を挿入しま
      す ("add_radiobutton()" を参照)。

   insert_separator(index, cnf={}, **kw)

      *index* で指定した項目の直前に、区切り線を挿入します
      ("add_separator()" を参照)。

   delete(index1, index2=None)

      *index1* から *index2* まで、両端を含むすべてのメニュー項目を削
      除します。 *index2* を省略すると *index1* と同じ値になり、1 項目
      だけを削除します。 切り離し用の項目を削除しようとしても無視され
      ます。 その項目を削除するには、代わりに *tearoff* オプションを変
      更してください。

   entrycget(index, option)

      *index* で指定した項目の設定オプション *option* の現在の値を返し
      ます。

   entryconfigure(index, cnf=None, **kw)

      *index* で指定した項目の設定オプションを取得または変更します。
      "configure()" に対応する操作ですが、メニュー全体ではなく個々の項
      目に適用されます。 オプションなしでは、項目の現在のオプションを
      説明する辞書を返します。 それ以外の場合は指定されたオプションを
      設定します。 サポートするオプションは、その種類の項目に対して
      "add()" が受け付けるものです。 "entryconfig()" は
      "entryconfigure()" の別名です。

   index(index)

      *index* に対応する数値インデックスを返します。 *index* がどの項
      目も指さなければ "None" を返します。

   type(index)

      *index* で指定した項目の種類を返します。 "'command'"、
      "'cascade'"、"'checkbutton'"、"'radiobutton'"、"'separator'"、
      "'tearoff'" (切り離し用の項目) のいずれかです。

   activate(index)

      *index* で指定した項目をアクティブにしてアクティブ時の色で再表示
      し、それまでアクティブだった項目はアクティブでなくします。
      *index* がどの項目も指さない場合や、指定した項目が無効な場合は、
      アクティブな項目のない状態になります。

   invoke(index)

      *index* で指定した項目を、クリックされたときと同じように実行しま
      す。 項目が無効なら何もしません。 項目に *command* が対応してい
      ればその結果を返し、そうでなければ空文字列を返します。

   post(x, y)

      ルートウィンドウの座標 *x* と *y* にメニューを表示します。 必要
      に応じて座標を調整し、メニュー全体が見えるようにします。
      *postcommand* オプションが指定されていれば、メニューを表示する前
      に評価します。

   tk_popup(x, y, entry='')

      ルートウィンドウの座標 *x* と *y* に、ポップアップとしてメニュー
      を表示します。 *entry* を指定すると、その項目がポインターの下に
      来るように配置します。

   unpost()

      メニューをアンマップして非表示にし、表示中の下位のカスケードサブ
      メニューも非表示にします。 Windows と macOS では、メニューを閉じ
      る処理をシステム自身が管理するため、効果はありません。

   xposition(index)

      *index* で指定した項目の最も左のピクセルの x 座標を、メニューウ
      ィンドウの座標系で返します。

      Added in version 3.3.

   yposition(index)

      *index* で指定した項目の最も上のピクセルの y 座標を、メニューウ
      ィンドウの座標系で返します。

class tkinter.Menubutton(master=None, cnf={}, **kw)

   "Menubutton" ウィジェットはテキスト文字列、ビットマップ、画像を表示
   し、ユーザーが押すと *menu* オプションで指定した "Menu" を表示しま
   す。 "Label" と同様に、*text*、*textvariable*、*image* を表示でき、
   *direction* オプションでボタンに対するメニューの表示位置を制御しま
   す。 "Widget" を継承します。 オプションの全一覧は Tk の
   "menubutton" マニュアルページを参照してください。

class tkinter.Message(master=None, cnf={}, **kw)

   "Message" ウィジェットは、*text* オプションで指定するか
   *textvariable* で変数に結び付けた、操作を受け付けないテキスト文字列
   を表示します。 "Label" と異なり、指定された縦横比になるよう単語の境
   界で複数行に折り返し、左揃え、中央揃え、右揃えにできます。 "Widget"
   を継承します。 オプションの全一覧は Tk の "message" マニュアルペー
   ジを参照してください。

class tkinter.OptionMenu(master, variable, value, *values, **kwargs)

   排他的な選択肢のポップアップメニューを表示する、"Menubutton" の補助
   的なサブクラスです。 *variable* は選択内容と同期する "Variable"、
   *value* は最初の選択肢、*values* は残りのメニュー項目です。 キーワ
   ード引数 *command* には選択された値を引数として呼び出すコールバック
   を指定でき、*name* には Tk のウィジェット名を指定できます。

   destroy()

      ウィジェットを破棄し、対応するポップアップメニューも片付けます。

   バージョン 3.14 で変更: *name* キーワード引数がサポートされました。

class tkinter.PanedWindow(master=None, cnf={}, **kw)

   "PanedWindow" は、任意の数の子 *ペイン* を、*orient* が
   "'horizontal'" なら横一列、"'vertical'" なら縦一列に並べる、ジオメ
   トリ管理用のウィジェットです。 各ペインは一つのウィジェットを持ち、
   隣り合うペインの間には移動可能な *仕切り (sash)* があり、ユーザーが
   マウスでドラッグして両側のウィジェットのサイズを変えられます。
   "Widget" を継承します。

   *orient* は配置方向、*sashwidth* は各仕切りの幅、*sashrelief* は仕
   切りの境界スタイルを指定します。 *showhandle* が真なら、ユーザーが
   つかんでドラッグできる小さなハンドルを各仕切りに描画します。 オプシ
   ョンの全一覧は Tk の "panedwindow" マニュアルページを参照してくださ
   い。

   add(child, **kw)

      *child* を新しいペインとして、既存のすべてのペインの後に追加しま
      す。 キーワード引数は *child* のペイン固有の管理オプションで、
      "paneconfigure()" が受け付けるものを指定できます。

   remove(child)

      *child* を含むペインを取り除きます。 *child* のジオメトリ管理オ
      プションはすべて破棄されます。 "forget()" は "remove()" の別名で
      す。 継承したジオメトリマネージャーの "forget()" を隠すため、こ
      のウィジェット自身を管理対象から外すには、"pack_forget()"、
      "grid_forget()"、"place_forget()" を使ってください。

   panes()

      Return a tuple of the widgets managed by the panedwindow, one
      per pane, in order.

   panecget(child, option)

      *child* を含むペインの管理オプション *option* の現在の値を返しま
      す。 *option* には "paneconfigure()" が受け付けるものを指定でき
      ます。

   paneconfigure(tagOrId, cnf=None, **kw)

      ウィジェット *tagOrId* を含むペインの管理オプションを取得または
      変更します。 オプションなしでは、利用できるすべてのオプションを
      説明する辞書を返します。 単一のオプション名を文字列で渡すと、そ
      のオプションの説明を返します。 それ以外の場合は指定されたオプシ
      ョンを設定します。 サポートするオプションには、*after* と
      *before* (管理中の別のウィンドウの後または前に挿入)、*height* と
      *width* (境界を含むウィンドウの外側の寸法)、 *minsize* (分割方向
      の最小サイズ)、*padx* と *pady* (ウィンドウの各辺に設ける余分な
      スペース)、 *sticky* ("n"、"s"、"e"、"w" からなる文字列で、大き
      なペイン内の配置や引き伸ばしを指定)、 *hide* (ペイン一覧に残した
      まま非表示にする)、*stretch* (余分なスペースの割り当て方で、
      "'always'"、"'first'"、"'last'"、"'middle'"、"'never'" のいずれ
      か) があります。 "paneconfig()" は "paneconfigure()" の別名です
      。

   identify(x, y)

      ウィンドウ座標の *x*、*y* にある、ペインウィンドウの部品を特定し
      ます。 仕切りやそのハンドル上であれば、"(0, 'sash')" や "(2,
      'handle')" のように、仕切りまたはハンドルのインデックスと、どち
      らなのかを表す単語の 2 要素のタプルを返します。 それ以外の場所な
      ら空文字列を返します。

   sash(*args)

      ペインウィンドウの仕切りの位置を取得または変更します。 Tk の
      "sash" サブコマンドの薄いラッパーです。 通常は便宜メソッド
      "sash_coord()"、"sash_mark()"、"sash_place()" を使ってください。

   sash_coord(index)

      Return the current x and y coordinate pair for the sash given by
      *index*, which must be an integer between 0 and one less than
      the number of panes in the panedwindow. The coordinates returned
      are those of the top left corner of the region containing the
      sash.

   sash_mark(index)

      Record the current mouse position for the sash given by *index*,
      for use together with later sash-drag operations to move the
      sash.

   sash_place(index, x, y)

      *index* で指定した仕切りを、座標 *x*、*y* に配置します。

   proxy(*args)

      仕切りのプロキシの位置を取得または変更します。 これは、ドラッグ
      中に内容のサイズを変えない方式で、仕切りをドラッグしている間に表
      示する仮の仕切りです。 Tk の "proxy" サブコマンドの薄いラッパー
      なので、通常は便宜メソッド "proxy_coord()"、"proxy_forget()"、
      "proxy_place()" を使ってください。

   proxy_coord()

      最後のプロキシの位置の x、y 座標を含むタプルを返します。

   proxy_forget()

      プロキシを画面から取り除きます。

   proxy_place(x, y)

      プロキシを座標 *x*、*y* に配置します。

class tkinter.Radiobutton(master=None, cnf={}, **kw)

   "Radiobutton" ウィジェットは、テキスト文字列、ビットマップ、画像を
   ひし形または円形の選択マークとともに表示し、複数の選択肢から一つを
   選べるようにします。 通常のボタンのすべての動作に加えて、選択状態を
   持ちます。 通常は複数のラジオボタンで一つの *variable* を共有し、一
   つを選択するとそのボタンの *value* が変数に設定されます。 各ラジオ
   ボタンは変数を監視し、値が変わると自動的に選択または選択解除の状態
   になります。 "Widget" を継承します。 標準のウィジェットオプションに
   加えて、*variable*、*value*、*command* など、Tk の "radiobutton" マ
   ニュアルページに記載されたオプションを受け付けます。

   invoke()

      ユーザーがマウスでラジオボタンを押したときと同じ動作をします。
      ボタンを選択し、対応するコマンドがあれば呼び出します。 コマンド
      の結果を返し、コマンドがなければ空文字列を返します。 ラジオボタ
      ンの状態が "disabled" の場合は無視されます。

   select()

      ラジオボタンを選択し、対応する変数にこのウィジェットの値を設定し
      ます。

   deselect()

      ラジオボタンの選択を解除し、対応する変数を空文字列に設定します。
      このラジオボタンが選択されていなければ何もしません。

   flash()

      アクティブ時と通常時の色を交互に使って数回再表示し、ラジオボタン
      を点滅させます。 点滅後は、呼び出し時と同じ通常状態またはアクテ
      ィブ状態に戻します。 ラジオボタンの状態が "disabled" の場合は無
      視されます。

class tkinter.Scale(master=None, cnf={}, **kw)

   "Scale" ウィジェットは、溝に沿ってスライダーを動かすことで、ユーザ
   ーが数値を選べるようにします。 垂直・水平のどちらにも配置でき、必要
   に応じてラベルと現在の値を表示できます。 "Widget" を継承します。

   標準のウィジェットオプションに加えて、*from_*、*to*、*resolution*、
   *orient*、*tickinterval*、*variable*、*command* など、Tk の "scale"
   マニュアルページに記載されたオプションを受け付けます。 "tkinter" の
   他の場所と同様、Tk オプション名の先頭の "-" は省略します。 また、
   "from" は Python のキーワードなので、*from* は "from_" と綴ります。

   *resolution* が整数でない場合は、数値とロケール を参照してください
   。

   get()

      スケールの現在の値を返します。 *resolution* によって整数値になる
      場合は整数、それ以外は浮動小数点数を返します。

   set(value)

      スケールを *value* に設定し、それに合わせてスライダーを動かしま
      す。 スケールが無効な場合は効果がありません。

   coords(value=None)

      *value* に対応する溝の中心線上の点を、ウィジェットからの相対位置
      を表すピクセル単位のタプル "(x, y)" で返します。 *value* を省略
      すると、スケールの現在の値を使います。

   identify(x, y)

      ピクセル座標 *x*、*y* にあるスケールの部品を表す文字列を返します
      。 "'slider'"、"'trough1'" (スライダーより上または左の溝)、
      "'trough2'" (下または右の溝) のいずれかで、どの部品上でもなけれ
      ば空文字列を返します。

class tkinter.Scrollbar(master=None, cnf={}, **kw)

   "Scrollbar" ウィジェットは、スライダーと 2 つの矢印を表示し、
   "Listbox"、"Text"、"Canvas"、"Entry" などの対応するウィジェットをス
   クロールできるようにします。 スクロール対象の *xscrollcommand* また
   は *yscrollcommand* をスクロールバーの "set()" に設定し、 スクロー
   ルバーの *command* を対象の "xview()" または "yview()" に設定して接
   続します。 "Widget" を継承します。

   get()

      最後に "set()" に渡された現在のスクロールバーの設定を、0 から 1
      までの 2 つの割合のタプル "(first, last)" で返します。 文書の現
      在表示されている部分を表します。

   set(first, last)

      スクロールバーを設定します。 *first* と *last* は 0 から 1 まで
      の割合で、対応する文書の表示部分の始点と終点を表します。 通常、
      このメソッドをスクロール対象の *xscrollcommand* または
      *yscrollcommand* に登録し、そのウィジェットから呼び出します。

   activate(index=None)

      部品 *index* ("'arrow1'"、"'slider'"、"'arrow2'" のいずれか) を
      アクティブにし、*activebackground* と *activerelief* に従って表
      示します。 *index* を省略すると、現在アクティブな部品の名前を返
      し、なければ "None" を返します。

      バージョン 3.5 で変更: *index* 引数が省略可能になりました。

   delta(deltax, deltay)

      スライダーを、水平方向のスクロールバーでは *deltax* ピクセル、垂
      直方向のスクロールバーでは *deltay* ピクセル移動させたときの、ス
      クロールバー設定の割合の変化を浮動小数点数で返します。

   fraction(x, y)

      ピクセル座標 *x*、*y* の点が溝のどこにあるかを、0 から 1 の浮動
      小数点数で返します。 0 は溝の上端または左端、1 は下端または右端
      です。

   identify(x, y)

      ピクセル座標 *x*、*y* の下にある部品の名前 ("'arrow1'" など) を
      返します。 スクロールバーのどの部品にも含まれなければ空文字列を
      返します。

class tkinter.Spinbox(master=None, cnf={}, **kw)

   "Spinbox" ウィジェットは、値を直接編集する機能に加え、上下の矢印ボ
   タンで値の範囲を順にたどれる、"Entry" に似たウィジェットです。 値の
   集合は、*from_*、*to*、*increment* で指定する数値範囲、または
   *values* で明示する文字列のリストです (リストの指定が数値範囲より優
   先されます)。 矢印を実行するたびに、*command* コールバックがあれば
   呼び出します。 真偽値の *wrap* は範囲の端を越えたときに反対側に戻る
   か、*format* は数値の書式を指定し、*validate* は入力テキストの検証
   を有効にします。 "Widget" と "XView" を継承します。

   *increment* が整数でない場合は、数値とロケール を参照してください。

   多くのメソッドは、スピンボックスの文字列内の文字を指定する *index*
   引数を取ります。 Tk の "spinbox" マニュアルページで説明されているよ
   うに、*index* には、0 から数えた数値インデックス、 "'anchor'" (選択
   の起点)、"'end'" (最後の文字の直後)、"'insert'" (挿入カーソルの直後
   の文字)、 "'sel.first'" と "'sel.last'" (選択範囲の両端)、"@x" (ウ
   ィンドウ内のピクセル単位の x 座標 *x* にある文字) を指定できます。

   get()

      スピンボックスの文字列を返します。

   insert(index, s)

      *index* で指定した文字の直前に、文字列 *s* の文字を挿入します。

   delete(first, last=None)

      スピンボックスの 1 文字以上を削除します。 *first* は削除する最初
      の文字のインデックス、*last* は削除する最後の文字の直後のインデ
      ックスです。 *last* を省略すると、*first* の 1 文字だけを削除し
      ます。

   icursor(index)

      *index* で指定した文字の直前に挿入カーソルを表示するようにします
      。

   index(index)

      Return the numerical index corresponding to *index*, as a
      string.

   bbox(index)

      *index* で指定した文字の境界矩形を、4 つの整数のタプル "(x, y,
      width, height)" で返します。 *x* と *y* はウィジェットを基準とす
      る文字の左上隅のピクセル座標で、*width* と *height* はピクセル単
      位のサイズです。 境界矩形は、ウィンドウの表示領域外を指す場合が
      あります。

      継承した "Misc.bbox()" を隠します。 グリッドの境界矩形には
      "grid_bbox()" を使ってください。

   identify(x, y)

      ピクセル座標 *x*、*y* にあるウィンドウの部品の名前を、
      "'buttondown'"、"'buttonup'"、"'entry'"、"'none'" のいずれかで返
      します。

   invoke(element)

      *element* ("'buttonup'" または "'buttondown'") で指定したスピン
      ボタンを実行し、対応する操作を行います。

   scan(*args)

      表示領域の高速なドラッグを実装する、Tk の "scan" ウィジェットサ
      ブコマンドの薄いラッパーです。 "scan('mark', x)" は *x* と現在の
      表示領域を記録し、"scan('dragto', x)" はその記録を基準に表示領域
      を調整します。 "scan_mark()" と "scan_dragto()" が、この 2 つの
      形式をラップします。

   scan_mark(x)

      後で "scan_dragto()" を呼び出すために、*x* とスピンボックスの現
      在の表示領域を記録します。 通常はウィジェット内のマウスボタンの
      押下に対応付けます。

   scan_dragto(x)

      *x* と最後の "scan_mark()" に渡した *x* の差の 10 倍だけ、表示領
      域を調整します。 通常はマウス移動イベントに対応付け、ウィンドウ
      内でスピンボックスを高速にドラッグする効果を生みます。

   selection(*args)

      スピンボックス内の選択範囲を調整する、Tk の "selection" ウィジェ
      ットサブコマンドの薄いラッパーです。 最初の引数に応じて、
      "selection('adjust', index)"、"selection('clear')"、
      "selection('element', ?elem?)"、 "selection('from', index)"、
      "selection('present')"、"selection('range', start, end)"、
      "selection('to', index)" などの形式があります。
      "selection_adjust()"、"selection_clear()"、"selection_element()"
      、"selection_from()"、"selection_present()"、"selection_range()"
      、"selection_to()" が、それぞれの形式をラップします。

   selection_adjust(index)

      選択範囲の端のうち、*index* で指定した文字に近い方を、その文字を
      含む位置まで移動します。 もう一方の端は、今後の "selection_to()"
      の起点になります。 スピンボックス内に選択範囲がなければ、*index*
      と最後に設定した起点の間に、両端を含む新しい選択範囲を作ります。

   selection_clear()

      選択範囲が現在このウィジェット内にあればクリアします。 このウィ
      ジェット内になければ何もしません。

      注釈:

        X のセレクションをクリアする、継承した
        "Misc.selection_clear()" を隠します。 そのメソッドは "Spinbox"
        では使えません。

   selection_element(element=None)

      現在選択されている部品を設定または取得します。 *element*
      ("'buttonup'"、"'buttondown'"、"'none'" のいずれか) を指定すると
      、そのスピンボタンを選択し、押し込まれた状態で表示します。 指定
      しなければ、現在選択されている部品の名前を返します。

   selection_from(index)

      選択範囲自体は変更せずに、選択の起点を *index* で指定した文字の
      直前に設定します。

      Added in version 3.8.

   selection_present()

      スピンボックス内に選択された文字があれば "True"、そうでなければ
      "False" を返します。

      Added in version 3.8.

   selection_range(start, end)

      *start* の文字から *end* の直前の文字までを選択範囲に設定します
      。 *end* が *start* と同じ文字かそれより前の文字を指す場合は、選
      択範囲をクリアします。

      Added in version 3.8.

   selection_to(index)

      *index* と起点の間に選択範囲を設定します。 *index* が起点より前
      なら *index* から起点の直前まで、後なら起点から *index* の直前ま
      でを選択します。 同じ位置なら何もしません。 起点は、最後の
      "selection_from()" または "selection_adjust()" で設定されたもの
      です。 このウィジェット内に選択範囲がなければ、最後に設定した起
      点を使って新しく作成します。

      Added in version 3.8.

class tkinter.Text(master=None, cnf={}, **kw)

   "Text" ウィジェットは、複数行のテキストを表示・編集します。 **タグ
   ** でテキストの一部のスタイルを設定し、テキストとともに移動する **
   マーク** で特定の位置に印を付け、任意の画像や他のウィジェットをテキ
   ストに埋め込めます。 また、無制限の取り消し・やり直し機能と、内部の
   データを共有するピアウィジェットをサポートします。 "Widget"、
   "XView"、"YView" を継承するため、"xview()" と "yview()" で表示領域
   を水平・垂直方向にスクロールできます。 オプションの全一覧は Tk の
   "text" マニュアルページを参照してください。

   ほとんどのメソッドは、テキスト内の位置を指定する *index* 引数を一つ
   以上取ります。 Tk の "text" マニュアルページで説明されているように
   、インデックスは基準となる指定に、必要に応じて一つ以上の修飾指定を
   続けた文字列です。 基準には "'line.char'" (行 *line* の文字 *char*
   。行は 1、行内の文字は 0 から数え、"'line.end'" は行末の改行文字を
   指す)、 "'end'" (最後の改行文字の直後)、マーク名、"'tag.first'" ま
   たは "'tag.last'" (*tag* の付いた最初の文字、または最後の文字の直後
   )、 埋め込んだ画像やウィンドウの名前、"@x,y" (ウィジェット内のピク
   セル座標 *x*, *y* にある文字) を指定できます。 "'+5 chars'"、"'-3
   lines'"、"'linestart'"、"'lineend'"、"'wordstart'"、"'wordend'" な
   どの修飾指定は、基準に対してインデックスを調整します。 複数を組み合
   わせると左から右に適用されます。 例えば "'insert wordstart - 1 c'"
   のように指定します。

   insert(index, chars, *args)

      *index* の文字の直前 ("'end'" の場合は最後の改行文字の直前) に、
      文字列 *chars* を挿入します。 デフォルトでは、新しいテキストは挿
      入位置の両側に共通するタグを継承します。 *args* を指定する場合は
      、*tagList* と *chars* を交互に並べます。 直前の *chars* には、
      周囲のタグではなく、そのリストで指定したタグだけが付きます (タグ
      リストは単一のタグ名または名前のシーケンスです)。

   delete(index1, index2=None)

      *index1* から *index2* の直前までの文字を削除します。 *index2*
      を省略すると、*index1* の 1 文字だけを削除します。 ウィジェット
      は常に末尾に改行文字を保持するため、それを削除するような範囲は適
      切に調整されます。

   replace(index1, index2, chars, *args)

      *index1* から *index2* の直前までの文字を、*chars* に置き換えま
      す。 "delete()" の後に *index1* で "insert()" を行うのと等価です
      。 *args* は "insert()" と同じように解釈されます。

      Added in version 3.3.

   get(index1, index2=None)

      *index1* から *index2* の直前までのテキストを文字列で返します。
      *index2* を省略すると、*index1* の 1 文字を返します。 埋め込み画
      像やウィンドウは結果に含まれません。

   index(index)

      *index* に対応する位置を、標準の "'line.char'" 形式で返します。

   compare(index1, op, index2)

      *index1* と *index2* の位置を関係演算子 *op* で比較し、真偽値の
      結果を返します。 *op* は "'<'"、"'<='"、"'=='"、"'>='"、"'>'"、
      "'!='" のいずれかでなければなりません。

   count(index1, index2, *options, return_ints=False)

      Count the number of items of the requested kinds between
      *index1* and *index2*; the count is negative if *index1* is
      after *index2*. Each of *options* names a kind of item to count:
      "'chars'", "'displaychars'", "'displayindices'",
      "'displaylines'", "'indices'", "'lines'", "'xpixels'" or
      "'ypixels'" (the default, used when no option is given, is
      "'indices'"). The pseudo-option "'update'" forces any out-of-
      date layout information to be recalculated before the following
      options are evaluated. When *return_ints* is true and a single
      counting option is given, return a plain integer; otherwise
      return a tuple with one integer per counting option (or "None"
      if the result is empty).

      Added in version 3.3.

      バージョン 3.13 で変更: *return_ints* 引数が追加されました。

   see(index)

      *index* で指定した文字が見えるように表示領域を調整します。 すで
      に見えている場合は何もしません。 表示領域から少しだけ外れている
      場合は、最も近い端で見えるだけの最小限のスクロールを行い、それ以
      外は *index* がウィンドウの中央になるようにスクロールします。

   bbox(index)

      *index* の文字の見えている部分の境界矩形を、ピクセル単位のタプル
      "(x, y, width, height)" で返します。 その文字が画面に表示されて
      いなければ "None" を返します。

      継承した "Misc.bbox()" を隠します。 グリッドの境界矩形には
      "grid_bbox()" を使ってください。

   dlineinfo(index)

      *index* を含む表示行を説明するタプル "(x, y, width, height,
      baseline)" を返します。 最初の 4 値は行の境界矩形をピクセル単位
      で表し、*baseline* は領域の上端から下方向に測ったベースラインの
      オフセットです。 表示行が画面に見えていなければ "None" を返しま
      す。

   mark_set(markName, index)

      *markName* というマークを、*index* の文字の直前に設定します。 マ
      ークが存在しなければ作成します。 この方法で作成したマークの重力
      方向は、デフォルトで右です。

   mark_unset(*markNames)

      *markNames* で指定した各マークを削除します。 特別なマーク
      "insert" と "current" は削除できません。

   mark_names()

      現在ウィジェットに設定されているすべてのマークの名前のタプルを返
      します。

   mark_gravity(markName, direction=None)

      *direction* を省略すると、マーク *markName* の重力方向を
      "'left'" または "'right'" で返します。 指定すると、重力方向を
      *direction* に設定します。 重力方向は、マークの位置に挿入したテ
      キストが、マークのどちら側に現れるかを決めます。 右向きの重力方
      向 (デフォルト) を持つマークは、挿入されたテキストの右側に残りま
      す。

   mark_next(index)

      *index* 以降にある最初のマークの名前を返します。 なければ "None"
      を返します。 *index* がマーク名の場合は、そのマークの直後から検
      索します。

   mark_previous(index)

      *index* 以前にある最後のマークの名前を返します。 なければ "None"
      を返します。 *index* がマーク名の場合は、そのマークの直前から検
      索します。

   tag_add(tagName, index1, *args)

      *index1* から *args* 内の次のインデックスの直前までの文字に、タ
      グ *tagName* を追加します。 *args* にさらにインデックスの組を続
      けて、複数の範囲にタグを付けられます。 末尾のインデックスが一つ
      だけなら、その位置の 1 文字にタグを付けます。

   tag_remove(tagName, index1, index2=None)

      *index1* から *index2* の直前までの文字から、タグ *tagName* を取
      り除きます。 *index2* を省略すると *index1* の 1 文字から取り除
      きます。 どの文字にも付かなくなっても、タグ自体は存在し続けます
      。

   tag_delete(*tagNames)

      *tagNames* で指定した各タグを削除し、すべての文字から取り除き、
      オプションとバインディングも破棄します。

   tag_configure(tagName, cnf=None, **kw)

      タグ *tagName* の設定オプションを取得または変更します。
      "configure()" に対応する操作ですが、ウィジェット全体ではなくタグ
      に適用されます。 オプションなしでは現在のオプションを説明する辞
      書を返し、それ以外は指定されたオプションを設定します。 この方法
      でタグを定義すると、既存のどのタグよりも高い優先度が付きます。

      サポートするタグオプションは次のとおりで、いずれもタグの付いたテ
      キストの外観を制御します。

      *font*
         テキストに使うフォントです。

      *foreground*
         テキストに使う色です。

      *background*
         テキストの背景領域に使う色です。

      *fgstipple*, *bgstipple*
         前景 (テキスト) と背景の点描に使うビットマップです。 十分にサ
         ポートされているのは X11 だけです。

      *borderwidth*
         *relief* に従ってテキストの周囲に描く境界の幅です (デフォルト
         "0")。

      *relief*
         テキストの境界の立体的な外観を、"'flat'" (デフォルト)、
         "'raised'"、"'sunken'"、"'ridge'"、"'groove'"、"'solid'" で指
         定します。

      *offset*
         上付き・下付き文字のために、テキストをベースラインから上に (
         負なら下に) 移動する量です。

      *underline*
         テキストに下線を付けるかどうか (真偽値)。

      *underlinefg*
         下線の色です。 デフォルトはテキストの色です。

      *overstrike*
         テキストの中央に取り消し線を引くかどうか。

      *overstrikefg*
         取り消し線の色です。 デフォルトはテキストの色です。

      *elide*
         テキストを非表示にするかどうか。

      *justify*
         表示行の最初の文字の揃え方を "'left'" (デフォルト)、"'right'"
         、"'center'" で指定します。

      *wrap*
         長すぎる行の折り返し方を "'char'"、"'word'"、"'none'" で指定
         します。

      *lmargin1*, *lmargin2*
         論理行の最初の表示行と、残りの表示行のインデントをピクセル単
         位で指定します。

      *lmargincolor*
         左余白の色です。

      *rmargin*
         右余白をピクセル単位で指定します。

      *rmargincolor*
         右余白の色です。

      *spacing1*, *spacing2*, *spacing3*
         論理行の最初の表示行の上、表示行の間、最後の表示行の下に加え
         るスペースをピクセル単位で指定します。

      *tabs*
         タブ位置の集合を、ウィジェットの *tabs* オプションと同じ形式
         で指定します。

      *tabstyle*
         タブ位置の解釈方法を "'tabular'" または "'wordprocessor'" で
         指定します。

      *selectbackground*, *selectforeground*
         テキストが選択されている間の背景色と前景色です。

      注釈:

        Tk 8.6 で *lmargincolor*、*overstrikefg*、*rmargincolor*、
        *selectbackground*、*selectforeground*、*underlinefg* オプショ
        ンが追加されました。

      "tag_config()" は "tag_configure()" の別名です。

   tag_cget(tagName, option)

      タグ *tagName* の設定オプション *option* の現在の値を返します。

   tag_names(index=None)

      *index* を省略すると、ウィジェットに定義されたすべてのタグの名前
      のタプルを返します。 指定すると、*index* の文字に付いたタグの名
      前だけを返します。 名前は優先度の低い順に並びます。

   tag_ranges(tagName)

      タグ *tagName* が付いたすべてのテキスト範囲を表す、インデックス
      のタプルを返します。 開始と終了のインデックスが交互に並び、要素
      "2*i" と "2*i+1" が *i* 番目の範囲の両端を表します。

   tag_nextrange(tagName, index1, index2=None)

      *index1* から前方へ (*index2* があればそこまで)、タグ *tagName*
      が付いた最初の文字範囲を検索し、開始と終了のインデックスの 2 要
      素のタプルを返します。 そのような範囲がなければ空のタプルを返し
      ます。

   tag_prevrange(tagName, index1, index2=None)

      *index1* から後方へ (*index2* があればそこまで)、タグ *tagName*
      が付いた最も近い手前の文字範囲を検索し、開始と終了のインデックス
      の 2 要素のタプルを返します。 そのような範囲がなければ空のタプル
      を返します。

   tag_raise(tagName, aboveThis=None)

      タグ *tagName* の優先度を *aboveThis* のすぐ上に上げます。
      *aboveThis* を省略すると、すべてのタグの中で最も高くします。 重
      なったタグの表示オプションが競合する場合は、優先度が高いタグを使
      います。

   tag_lower(tagName, belowThis=None)

      タグ *tagName* の優先度を *belowThis* のすぐ下に下げます。
      *belowThis* を省略すると、すべてのタグの中で最も低くします。

   tag_bind(tagName, sequence, func, add=None)

      タグ *tagName* の付いた文字でのイベント *sequence* にコールバッ
      ク *func* をバインドし、その文字上でイベントが発生すると呼び出す
      ようにします。 *add* が真なら *sequence* の既存のバインディング
      に追加し、そうでなければ置き換えます。 "bind()" と同様に動作し、
      新しいバインディングの識別子を返します。

   tag_unbind(tagName, sequence, funcid=None)

      タグ *tagName* の付いた文字でのイベント *sequence* のバインディ
      ングを解除します。 *funcid* を指定すると、そのバインディング
      ("tag_bind()" の戻り値で指定) だけを解除し、コールバックの登録も
      解除します。

      バージョン 3.13 で変更: *funcid* を指定した場合、そのコールバッ
      クだけをバインド解除するようになりました。

   image_create(index, cnf={}, **kw)

      *index* に画像を埋め込み、その画像インスタンスに割り当てた名前を
      返します。 この名前は、インデックスとして使ったり、他の
      "image_*" メソッドに渡したりできます。 *cnf* と *kw* で渡すオプ
      ションには、*image* (表示する Tk 画像)、*name* (インスタンスの基
      本名)、*align*、*padx*、*pady* があります。

   image_cget(index, option)

      *index* に埋め込まれた画像の設定オプション *option* の現在の値を
      返します。

   image_configure(index, cnf=None, **kw)

      "configure()" と同様に、*index* に埋め込まれた画像の設定オプショ
      ンを取得または変更します。

   image_names()

      ウィジェットに埋め込まれたすべての画像の名前のタプルを返します。

      注釈:

        Tcl インタープリタ内のすべての画像名を返す、継承した
        "Misc.image_names()" を隠します。 そのメソッドは "Text" では使
        えません。

   window_create(index, cnf={}, **kw)

      *index* にウィンドウ (任意のウィジェット) を埋め込みます。 *cnf*
      と *kw* で渡すオプションには、*window* (埋め込むウィジェット)、
      *create* (必要時にウィジェットを作成するコールバック)、 *align*
      、真偽値の *stretch* (行の高さに合わせてウィジェットを垂直に引き
      伸ばすか)、*padx*、*pady* があります。 埋め込むウィジェットは、
      このテキストウィジェットの親の子孫でなければなりません。

   window_cget(index, option)

      *index* に埋め込まれたウィンドウの設定オプション *option* の現在
      の値を返します。

   window_configure(index, cnf=None, **kw)

      "configure()" と同様に、*index* に埋め込まれたウィンドウの設定オ
      プションを取得または変更します。

      "window_config()" は "window_configure()" の別名です。

   window_names()

      ウィジェットに埋め込まれたすべてのウィンドウの名前のタプルを返し
      ます。

   edit(*args)

      取り消し・やり直し機能と変更済みフラグを制御する、Tk の "edit"
      ウィジェットコマンドの低水準ラッパーです。 *args* は "edit" のサ
      ブコマンドとその引数です。 以下の "edit_*()" メソッドはその薄い
      ラッパーで、通常はこちらの方が便利です。

   edit_modified(arg=None)

      *arg* を省略すると、変更済みフラグの現在の状態を真偽値で返します
      。 フラグは、テキストを挿入または削除するたびに自動的に設定され
      ます。 *arg* を指定すると、その真偽値にフラグを設定します。

   edit_undo()

      最後の編集操作、つまり前の区切り以降に取り消しスタックに記録され
      たすべての挿入・削除を取り消し、やり直しスタックに移動します。
      取り消しスタックが空なら "TclError" を送出します。 *undo* オプシ
      ョンが真でなければ効果はありません。 Tk 9.0 以降では、変更された
      テキスト範囲の境界を示すインデックスのタプルを返します。

   edit_redo()

      その後に追加の編集が行われていなければ、最後に取り消した編集操作
      を再適用し、取り消しスタックに戻します。 やり直しスタックが空な
      ら "TclError" を送出します。 *undo* オプションが真でなければ効果
      はありません。 Tk 9.0 以降では、変更されたテキスト範囲の境界を示
      すインデックスのタプルを返します。

   edit_reset()

      取り消しスタックとやり直しスタックをクリアします。

   edit_separator()

      取り消しスタックに区切りを追加し、取り消し・やり直しの編集操作の
      境界を設けます。 *undo* オプションが真でなければ効果はありません
      。 *autoseparators* オプションが真なら、区切りは自動的に挿入され
      ます。

   search(pattern, index, stopindex=None, forwards=None, backwards=None, exact=None, regexp=None, nocase=None, count=None, elide=None, *, nolinestop=None, strictlimits=None)

      *index* から *pattern* を検索し、最初に一致した範囲の最初の文字
      のインデックスを返します。 一致しなければ空文字列を返します。
      *stopindex* を指定するとそこで検索を止め、省略するとテキストの端
      を越えて反対側に回り、開始位置に戻るまで検索します。 次の真偽値
      のキーワードフラグで検索を制御します。 *forwards* と *backwards*
      は方向を指定し、デフォルトは前方です。 *exact* (デフォルト) と
      *regexp* は、リテラルと正規表現のどちらで照合するかを指定します
      。 *nocase* は大文字と小文字を区別せず、*elide* は非表示のテキス
      トも検索します。 *nolinestop* (正規表現のみ) は "." と "[^" が改
      行にも一致するようにし、*strictlimits* は一致範囲全体が *index*
      と *stopindex* の間に収まることを要求します。 *count* が
      "Variable" なら、一致範囲のインデックス位置の数をそこに格納しま
      す。

      バージョン 3.15 で変更: *nolinestop* と *strictlimits* 引数が追
      加されました。

   search_all(pattern, index, stopindex=None, *, forwards=None, backwards=None, exact=None, regexp=None, nocase=None, count=None, elide=None, nolinestop=None, overlap=None, strictlimits=None)

      "search()" と似ていますが、検索範囲内のすべての一致を探し、各一
      致の開始インデックスのタプルを返します (なければ空です)。 デフォ
      ルトでは、重なる一致は返しません。 *overlap* に真を渡すと、他の
      一致に完全には含まれないすべての一致を返します。 *count* が
      "Variable" なら、一致ごとに一つの要素を持つリストが格納されます
      。

      Added in version 3.15.

   scan_mark(x, y)

      後で "scan_dragto()" を呼び出すために、*x*、*y* と現在の表示領域
      を記録します。 通常はウィジェット内のマウスボタンの押下にバイン
      ドします。

   scan_dragto(x, y)

      *x*、*y* と最後の "scan_mark()" に渡した座標の差の 10 倍だけ、ウ
      ィジェットをスクロールします。 通常はマウス移動イベントにバイン
      ドし、ウィンドウ内でテキストを高速にドラッグする効果を生みます。

   debug(boolean=None)

      *boolean* を省略すると、B 木データ構造の内部整合性検査が有効かど
      うかを返します。 指定すると、検査を有効または無効にします。 設定
      はすべてのテキストウィジェットで共有され、大量のテキストを持つウ
      ィジェットでは処理が目立って遅くなることがあります。

   dump(index1, index2=None, command=None, **kw)

      *index1* から *index2* の直前まで (省略時は *index1* のセグメン
      トだけ) のウィジェットの内容を、テキストに加えてマーク、タグ、画
      像、ウィンドウの情報も含めて返します。 結果は "(key, value,
      index)" の 3 要素のタプルのリストで、*key* は "'text'"、"'mark'"
      、"'tagon'"、"'tagoff'"、"'image'"、"'window'" のいずれかです。
      デフォルトではすべての種類を返します。 キーワード引数 *all*、
      *text*、*mark*、*tag*、*image*、*window* のいずれかに真を渡すと
      、指定した種類だけに限定します。 *command* を指定すると、各組に
      ついて 3 つの値を引数として呼び出し、何も返しません。

   peer_create(newPathName, cnf={}, **kw)

      このウィジェットの内部データ (テキスト、マーク、タグ、画像、取り
      消しスタック) を共有する、パス名 *newPathName* のピアテキストウ
      ィジェットを作成します。 どのピアから行った変更も、すべてのピア
      に反映されます。 デフォルトでは、このウィジェットと同じ行範囲を
      扱います。 *startline* と *endline* を含む標準のテキストオプショ
      ンを指定して変更できます。

      Added in version 3.3.

   peer_names()

      このウィジェット自身を除いた、ピアのパス名のタプルを返します。

      Added in version 3.3.

   yview_pickplace(*what)

      *what* で指定した位置が見えるように、表示領域を調整します。
      "see()" と同等の古い方法なので、代わりにそちらを使ってください。


変数クラス
----------

class tkinter.Variable(master=None, value=None, name=None)

   Tk 変数のラッパーの基底クラスです。 Tk 変数は Tcl インタープリタ内
   に格納された値で、ウィジェットの *variable* や *textvariable* オプ
   ションを通じて結び付けられます (ウィジェットと変数の連携 を参照)。
   変更は双方向に伝わります。 変数を更新すると、それに結び付けられたす
   べてのウィジェットが更新され、ユーザーがウィジェットを編集すると変
   数が更新されます。

   *master* は、変数を所有する Tcl インタープリタのウィジェットです。
   省略するとデフォルトのルートウィンドウを使います。 *value* は初期値
   で、省略すると型ごとのデフォルト値を使います。 *name* は Tcl インタ
   ープリタ内での変数名です。 省略すると "'PY_VARnum'" という形式の一
   意な名前を生成します。 *name* が既存の変数に一致し、*value* を省略
   した場合は、既存の値を保持します。

   通常は "Variable" を直接使わず、以下の型付きサブクラス "StringVar"
   、"IntVar"、"DoubleVar"、"BooleanVar" のいずれかを使うべきです。

   注釈:

     "Variable" がガベージコレクションされると、対応する Tcl 変数の定
     義が解除されます。 ウィジェットと結び付けている間は、例えばローカ
     ル変数ではなく属性に保存するなどして、参照を保持してください。 そ
     うしないと、Tk はウィジェットを動作させるために Tcl 変数を再作成
     しますが、その後は定義が解除されず、ラッパーを破棄するたびに Tcl
     変数が一つずつ残ってしまいます。

   バージョン 3.10 で変更: 二つの変数が等しい ("==") と判定されるのは
   、名前とクラスが同じで、同じ Tcl インタープリタに属する場合だけにな
   りました。

   get()

      Return the current value of the variable. For the base class the
      value is returned as a string; the typed subclasses convert it
      to the appropriate Python type.

   set(value)

      変数を *value* に設定します。 "initialize()" は "set()" の別名で
      す。

      Added in version 3.3: *initialize* という名前。

   trace_add(mode, callback)

      *mode* に従って変数にアクセスしたときに呼び出す *callback* を登
      録します。 *mode* は文字列 "'array'"、"'read'"、"'write'"、
      "'unset'" のいずれか、またはそれらのリストかタプルです。

      トリガーされると、*callback* は Tcl 変数の名前、インデックス (変
      数が配列の要素でなければ空文字列)、呼び出しをトリガーした *mode*
      の 3 つの引数で呼ばれます。

      登録したコールバックの内部名を返します。 この名前は
      "trace_remove()" に渡せます。

      Added in version 3.6.

   trace_remove(mode, cbname)

      変数からトレースコールバックを削除します。 *mode* は
      "trace_add()" に渡した *mode* と一致する必要があり、*cbname* は
      "trace_add()" が返したコールバック名です。

      Added in version 3.6.

   trace_info()

      変数に現在設定されているすべてのトレースを表す "(modes, cbname)"
      のペアのリストを返します。 *modes* はモード文字列のタプル、
      *cbname* はコールバックの内部名です。

      Added in version 3.6.

   trace_variable(mode, callback)

      *mode* に応じて変数がアクセスされたときに呼び出す *callback* を
      登録します。 *mode* は読み取り、書き込み、設定解除に対応する文字
      列 "'r'"、"'w'"、"'u'" のいずれかです。 登録したコールバックの内
      部名を返します。 "trace()" は "trace_variable()" の別名です。

      バージョン 3.6 で非推奨: 代わりに "trace_add()" を使ってください
      。 このメソッドは Tcl 9.0 で削除された Tcl の機能をラップしてい
      ます。

   trace_vdelete(mode, cbname)

      "trace_variable()" で *mode* に対して登録した、名前が *cbname*
      のトレースコールバックを削除します。

      バージョン 3.6 で非推奨: 代わりに "trace_remove()" を使ってくだ
      さい。 このメソッドは Tcl 9.0 で削除された Tcl の機能をラップし
      ています。

   trace_vinfo()

      "trace_variable()" で変数に設定したすべてのトレースについて、
      "(mode, cbname)" のペアのリストを返します。

      バージョン 3.6 で非推奨: 代わりに "trace_info()" を使ってくださ
      い。 このメソッドは Tcl 9.0 で削除された Tcl の機能をラップして
      います。

class tkinter.StringVar(master=None, value=None, name=None)

   文字列を保持する "Variable" のサブクラスです。 デフォルト値は "''"
   です。

   get()

      変数の値を "str" として返します。

class tkinter.IntVar(master=None, value=None, name=None)

   整数を保持する "Variable" のサブクラスです。 デフォルト値は "0" で
   す。

   get()

      変数の値を "int" として返します。

class tkinter.DoubleVar(master=None, value=None, name=None)

   浮動小数点数を保持する "Variable" のサブクラスです。 デフォルト値は
   "0.0" です。

   get()

      変数の値を "float" として返します。

   注釈:

     浮動小数点数の値は常にピリオド (".") を小数点として解析されますが
     、"Spinbox"、"Scale"、"ttk.Spinbox" は "LC_NUMERIC" ロケールに従
     って値を書式化します。 コンマを使うロケールでは "get()" が読み取
     れない値が生成され、"TclError" が送出されます。 これを避けるには
     、"LC_NUMERIC" をピリオドを使うロケール ("'C'" など) に設定してく
     ださい。

class tkinter.BooleanVar(master=None, value=None, name=None)

   真偽値を保持する "Variable" のサブクラスです。 デフォルト値は
   "False" です。

   get()

      変数の値を "bool" として返します。 値を真偽値として解釈できない
      場合は "ValueError" を送出します。

   set(value)

      *value* を真偽値に変換して変数に設定します。 "initialize()" は
      "set()" の別名です。

      Added in version 3.3: *initialize* という名前。


画像クラス
----------

class tkinter.Image(imgtype, name=None, cnf={}, master=None, **kw)

   Tk 画像の基底クラスです。 *imgtype* は Tk の画像型で、"'photo'" ま
   たは "'bitmap'" です。 画像は名前を持つオブジェクトで、ウィジェット
   の *image* オプションを通じて表示できます。 "Image" オブジェクトへ
   の参照をすべて削除すると、対応する Tk 画像も削除されます。 通常は
   "Image" を直接作成せず、"PhotoImage" または "BitmapImage" を作成し
   ます。

   画像の設定オプションは *cnf* と *kw* で指定します。 後からマッピン
   グプロトコル ("image[key]") または "configure()" メソッドで取得や変
   更ができます。

   configure(**kw)

      画像の 1 つ以上の設定オプションを変更します。 有効なオプションは
      画像型によって異なります。 "PhotoImage" と "BitmapImage" を参照
      してください。 "config()" は "configure()" の別名です。

   height()

      画像の高さをピクセル単位で返します。

   width()

      画像の幅をピクセル単位で返します。

   type()

      画像の型、つまり作成時に指定した *imgtype* の値 ("'photo'" や
      "'bitmap'" など) を返します。

class tkinter.PhotoImage(name=None, cnf={}, master=None, **kw)

   フルカラーの画像 (Tk の "photo" 画像型) で、内部ではピクセルごとに
   異なる透明度を持つ形式で格納されます。 GIF、PPM/PGM、および Tk 8.6
   以降では PNG ファイルの読み書き、Tk 9.0 以降では SVG ファイルの読み
   込みができ、ウィジェット内に描画できます。 "Image" を継承しています
   。

   設定オプションには *data* (画像の内容を表す文字列)、*file* (内容を
   読み込むファイルの名前)、*format* (ファイル形式ハンドラの名前)、
   *width* と *height* (画像を少しずつ構築するときに使う画像サイズ)、
   *gamma*、*palette* があります。

   blank()

      画像を空にします。 画像全体にデータがない状態にすることで透明に
      表示され、画像を表示するウィンドウの背景が透けて見えるようになり
      ます。

   cget(option)

      設定オプション *option* の現在の値を返します。

   copy(*, from_coords=None, zoom=None, subsample=None)

      この画像をコピーした新しい "PhotoImage" を返します。

      *from_coords* はコピーする元画像の矩形領域を指定します。 1〜4 個
      の整数 "(x1, y1, x2, y2)" からなるタプルまたはリストでなければな
      りません。 "(x1, y1)" と "(x2, y2)" は矩形の対角に位置する頂点を
      指定します。 *x2* と *y2* を指定しない場合は元画像の右下隅が使わ
      れます。 コピーされるピクセルには矩形の左辺と上辺が含まれますが
      、下辺と右辺は含まれません。 *from_coords* を指定しない場合は元
      画像全体がコピーされます。

      *zoom* または *subsample* を指定すると、"zoom()" または
      "subsample()" メソッドと同じように画像が変換されます。 値は単一
      の整数または整数のペアでなければなりません。

      バージョン 3.13 で変更: *from_coords*、*zoom*、*subsample* 引数
      を追加しました。

   copy_replace(sourceImage, *, from_coords=None, to=None, shrink=False, zoom=None, subsample=None, compositingrule=None)

      *sourceImage* ("PhotoImage" でなければなりません) の領域をこの画
      像にコピーします。 ピクセルの拡大や間引きもできます。 オプション
      を指定しない場合は *sourceImage* 全体がこの画像の座標 "(0, 0)"
      からコピーされます。

      *from_coords* は "copy()" メソッドと同じように、コピーする元画像
      の矩形領域を指定します。

      *to* はコピー先の画像で変更する矩形領域を指定します。 1〜4 個の
      整数 "(x1, y1, x2, y2)" からなるタプルまたはリストでなければなり
      ません。 *x2* と *y2* を指定しない場合は、"(x1, y1)" にコピー元
      の領域のサイズ (間引きや拡大を指定した場合はその適用後のサイズ)
      を加えた値が使われます。 *x2* と *y2* を指定すると、必要に応じて
      コピー元の領域をタイル状に繰り返してコピー先の領域を埋めます。

      *shrink* が真の場合は、必要に応じてコピー先の画像サイズを縮小し
      、コピー先の領域が画像の右下隅に接するようにします。

      *zoom* または *subsample* を指定すると、"zoom()" または
      "subsample()" メソッドと同じように画像が変換されます。 値は単一
      の整数または整数のペアでなければなりません。

      *compositingrule* は元画像の透明なピクセルをコピー先の画像と合成
      する方法を指定します。 "'overlay'" (デフォルト) では、元画像を透
      明なフィルムに印刷してコピー先の画像に重ねたように、コピー先の画
      像の元の内容が透けて見えます。 "'set'" ではコピー先の画像の元の
      内容を破棄し、元画像をそのまま使います。

      Added in version 3.13.

   data(format=None, *, from_coords=None, background=None, grayscale=False)

      画像データを返します。

      *format* は使用する画像ファイル形式ハンドラの名前を指定します。
      指定しない場合、データは行ごとに 1 要素を持つ文字列のタプルとし
      て返されます。 各文字列にはピクセル (列) ごとの色が "#RRGGBB" 形
      式でスペース区切りで含まれます。

      *from_coords* は画像から返す矩形領域を指定します。 1〜4 個の整数
      "(x1, y1, x2, y2)" からなるタプルまたはリストでなければなりませ
      ん。 *x1* と *y1* だけを指定すると、領域は "(x1, y1)" から画像の
      右下隅までになります。 4 つの座標をすべて指定すると、領域の対角
      に位置する頂点を表し、"(x1, y1)" を含み "(x2, y2)" を含まない領
      域になります。 *from_coords* を指定しない場合は画像全体が返され
      ます。

      *background* を指定すると、データには透明度の情報が含まれず、透
      明なピクセルはすべて指定した色に置き換えられます。

      *grayscale* が真の場合、データには色の情報が含まれず、すべてのピ
      クセルデータがグレースケールに変換されます。

      Added in version 3.13.

   get(x, y)

      座標 (*x*, *y*) にあるピクセルの色を、赤、緑、青の各成分を表す 0
      〜255 の 3 つの整数のタプル "(r, g, b)" として返します。

   put(data, to=None)

      画像のピクセルを *data* で指定した色に設定します。 *data* は文字
      列、または各行のピクセルの色を表すシーケンスを入れ子にしたシーケ
      ンスでなければなりません (例えば ""{red green} {blue yellow}"")
      。

      *to* はデータのコピー先となる画像内の領域の座標を指定します。 2
      個または 4 個の整数 "(x1, y1)" または "(x1, y1, x2, y2)" からな
      るタプルまたはリストでなければならず、領域の左上隅と、省略可能な
      右下隅を指定します。 デフォルトの位置は "(0, 0)" です。

   read(filename, format=None, *, from_coords=None, to=None, shrink=False)

      *filename* という名前のファイルから画像データを画像に読み込みま
      す。

      *format* はファイル内の画像データの形式を指定します。

      *from_coords* は画像ファイルのデータからコピー先の画像にコピーす
      る矩形領域を指定します。 1〜4 個の整数 "(x1, y1, x2, y2)" からな
      るタプルまたはリストでなければなりません。 *x1* と *y1* だけを指
      定すると、領域は "(x1, y1)" からファイル内の画像の右下隅までにな
      ります。 4 つの座標をすべて指定すると、領域の対角に位置する頂点
      を表します。 *from_coords* を指定しない場合はファイル内の画像全
      体が読み込まれます。

      *to* はデータの読み込み先となる画像内の領域の左上隅の座標を指定
      します。 デフォルトは "(0, 0)" です。

      *shrink* が真の場合は、必要に応じて画像サイズを縮小し、ファイル
      データの読み込み先となる領域が画像の右下隅に接するようにします。

      Added in version 3.13.

   subsample(x, y='', *, from_coords=None)

      この画像から X 方向は *x* ピクセルごと、Y 方向は *y* ピクセルご
      とのピクセルだけを使った、新しい "PhotoImage" を返します。 *y*
      を指定しない場合は *x* と同じ値が使われます。

      *from_coords* は "copy()" メソッドと同じように、コピーする元画像
      の矩形領域を指定します。

      バージョン 3.13 で変更: *from_coords* 引数を追加しました。

   transparency_get(x, y)

      座標 (*x*, *y*) のピクセルが完全に透明なら "True"、そうでなけれ
      ば "False" を返します。

      Added in version 3.8.

   transparency_set(x, y, boolean)

      *boolean* が真なら座標 (*x*, *y*) のピクセルを完全に透明にし、そ
      うでなければ完全に不透明にします。

      Added in version 3.8.

   write(filename, format=None, from_coords=None, *, background=None, grayscale=False)

      画像のデータを *filename* という名前のファイルに書き込みます。

      *format* は使用する画像ファイル形式ハンドラの名前を指定します。
      指定しない場合はファイルの拡張子から形式を推測します。

      *from_coords* は画像から書き出す矩形領域を指定します。 1〜4 個の
      整数 "(x1, y1, x2, y2)" からなるタプルまたはリストでなければなり
      ません。 *x1* と *y1* だけを指定すると、領域は "(x1, y1)" から画
      像の右下隅までになります。 4 つの座標をすべて指定すると、領域の
      対角に位置する頂点を表します。 *from_coords* を指定しない場合は
      画像全体が書き出されます。

      *background* を指定すると、データには透明度の情報が含まれず、透
      明なピクセルはすべて指定した色に置き換えられます。

      *grayscale* が真の場合、データには色の情報が含まれず、すべてのピ
      クセルデータがグレースケールに変換されます。

      バージョン 3.13 で変更: *background* と *grayscale* 引数を追加し
      ました。

   zoom(x, y='', *, from_coords=None)

      この画像を X 方向に *x* 倍、Y 方向に *y* 倍に拡大した新しい
      "PhotoImage" を返します。 *y* を指定しない場合は *x* と同じ値が
      使われます。

      *from_coords* は "copy()" メソッドと同じように、コピーする元画像
      の矩形領域を指定します。

      バージョン 3.13 で変更: *from_coords* 引数を追加しました。

class tkinter.BitmapImage(name=None, cnf={}, master=None, **kw)

   X11 ビットマップから作成する 2 色の画像 (Tk の "bitmap" 画像型) で
   す。 各ピクセルには前景色、背景色を表示するか、何も表示せず透明にし
   ます。 "Image" を継承しています。

   設定オプションは *data* または *file* (元のビットマップを X11 ビッ
   トマップ形式の文字列またはその形式のファイルの名前で指定)、
   *maskdata* または *maskfile* (マスク用ビットマップを同じ形式で指定)
   、*foreground* と *background* (2 つの色) です。 マスクが 0 のピク
   セルには何も表示しません。 それ以外のピクセルには、元のビットマップ
   が 1 なら前景色、0 なら背景色を表示します。 *background* を空文字列
   に設定すると、背景のピクセルは透明になります。

   "BitmapImage" には "Image" から継承したメソッド以外に独自のメソッド
   はありません。


その他のクラス
--------------

class tkinter.Event

   "Misc.bind()" でバインドしたコールバックに渡されるイベントの属性を
   格納するコンテナです。 "Event" インスタンスには以下の属性があり、そ
   れぞれ基となる Tk イベントのフィールドに対応します。 イベントの型に
   よっては、一部の属性が意味を持たないことを示す文字列 "'??'" に設定
   される場合があります。 バインディングとイベント を参照してください
   。

   serial

      イベントのシリアル番号。

   num

      押された、または離されたマウスボタン (ボタンイベントの場合)。

   focus

      ウィンドウがフォーカスを持つかどうか ("Enter" イベントと "Leave"
      イベントの場合)。

   height
   width

      ウィンドウの新しい高さと幅 ("Configure" イベントと "Expose" イベ
      ントの場合)。

   keycode

      押された、または離されたキーのキーコード。

   state

      イベントの状態。 ほとんどのイベントでは数値、"Visibility" イベン
      トでは文字列です。

   time

      イベントのタイムスタンプ (ミリ秒単位)。

   x
   y

      ウィジェットを基準とするポインタの位置 (ピクセル単位)。

   x_root
   y_root

      画面の左上隅を基準とするポインタの位置 (ピクセル単位)。

   char

      入力された文字を表す文字列 (キーイベントの場合)。

   send_event

      別のアプリケーションから送信されたイベントなら "True"。

   keysym

      押された、または離されたキーのシンボル名。

   keysym_num

      "keysym" の数値。

   type

      イベントの "EventType"。

   widget

      イベントが発生したウィジェット。

   delta

      マウスホイールの回転量 ("MouseWheel" イベントの場合)。

   user_data

      仮想イベントのデータ文字列で、"Misc.event_generate()" の *data*
      オプションに渡した値です。 仮想イベント以外では "'??'" です。

      Added in version 3.15.

   detail

      "Enter"、"Leave"、"FocusIn"、"FocusOut"、"ConfigureRequest" イベ
      ントの詳細を示す固定文字列です (Tcl/Tk のドキュメントを参照して
      ください)。 それ以外のイベントでは "'??'" です。

      Added in version 3.15.

class tkinter.EventType(*values)

   "Event.type" の値として使われる、Tk のイベント型を列挙する
   "enum.StrEnum" です。 メンバーには "KeyPress"、"KeyRelease"、
   "ButtonPress"、"ButtonRelease"、"Motion"、"Enter"、"Leave"、
   "FocusIn"、"FocusOut"、"Configure"、"Map"、"Unmap"、"Expose"、
   "Destroy"、"MouseWheel" などがあります。

   Added in version 3.6.

class tkinter.CallWrapper(func, subst, widget)

   Python のコールバックを Tcl から呼び出せるようにラップする内部用の
   補助クラスです。 *func* は Python の関数、*subst* は Tcl の引数を前
   処理する省略可能な関数、*widget* はエラーの報告に使うウィジェットで
   す。 インスタンスは "Misc.register()" によって自動的に作成され、通
   常このクラスを直接使うことはありません。


モジュールレベルの関数
----------------------

tkinter.Tcl(screenName=None, baseName=None, className='Tk', useTk=False)

   "Tcl()" 関数は、Tk サブシステムを初期化しない点を除き、"Tk" クラス
   が作成するものとほぼ同じオブジェクトを作成するファクトリ関数です。
   余分なトップレベルウィンドウを作成したくない環境や、X サーバのない
   Unix/Linux システムのように作成できない環境で Tcl インタープリタを
   動かすときに特に役立ちます。 "Tcl()" が作成したオブジェクトでも、
   "loadtk()" メソッドを呼び出すことで Toplevel ウィンドウを作成し、Tk
   サブシステムを初期化できます。

tkinter.NoDefaultRoot()

   暗黙のデフォルトルートウィンドウが作成されないようにします。 以降、
   "tkinter" は共有のデフォルトルートを自動的に作成しなくなり、
   *master* を明示せずにウィジェットを作成するなど、デフォルトルートに
   依存する操作は "RuntimeError" を送出します。 大きなアプリケーション
   では早い段階で呼び出し、ルートウィンドウを明示するようにしてくださ
   い。

tkinter.mainloop(n=0)

   すべてのウィンドウが破棄されるまで、デフォルトルートウィンドウで Tk
   のメインイベントループを実行します。 デフォルトルートで
   "Misc.mainloop()" を呼び出すのと同じです。

tkinter.getboolean(s)

   Tcl の真偽値文字列 *s* ("'1'"、"'true'"、"'yes'"、"'on'" など、また
   は対応する偽の値) を Python の "bool" に変換します。 無効な値には
   "ValueError" を送出します。

tkinter.getdouble(s)

   *s* を浮動小数点数に変換します。 これは組み込みの "float" です。

tkinter.getint(s)

   *s* を整数に変換します。 これは組み込みの "int" です。

tkinter.image_names()

   デフォルトルートのインタープリタに存在するすべての画像の名前を返し
   ます。

tkinter.image_types()

   デフォルトルートのインタープリタで利用できる画像型 ("'photo'" や
   "'bitmap'" など) を返します。


ファイルハンドラ
----------------

Tk を使うとコールバック関数の登録や解除ができ、ファイルディスクリプタ
に対する入出力が可能なときに、Tk のメインループからその関数が呼ばれま
す。 ファイルディスクリプタ1つにつき、1つだけハンドラは登録されます。
コード例です:

   import tkinter
   widget = tkinter.Tk()
   mask = tkinter.READABLE | tkinter.WRITABLE
   widget.tk.createfilehandler(file, mask, callback)
   ...
   widget.tk.deletefilehandler(file)

これらの機能は Windows では利用できません。

読み込みに使えるバイト数は分からないので、 "BufferedIOBase" クラスや
"TextIOBase" クラスの "read()" メソッドおよび "readline()" メソッドを
使おうとしないでください。これらは読み込みの際に、あらかじめ決められた
バイト数を要求するのです。ソケットには、 "recv()" や "recvfrom()" メソ
ッドを使うといいです。その他のファイルには、 raw 読み込みか
"os.read(file.fileno(), maxbytecount)" を使ってください。

Widget.tk.createfilehandler(file, mask, func)

   ファイルハンドラであるコールバック関数 *func* を登録します。 *file*
   引数は、 (ファイルやソケットオブジェクトのような) "fileno()" メソッ
   ドを持つオブジェクトか、整数のファイルディスクリプタとなります。
   *mask* 引数は、以下にある3つの定数の組み合わせの OR を取ったもので
   す。コールバックは次のように呼ばれます:

      callback(file, mask)

Widget.tk.deletefilehandler(file)

   ファイルハンドラの登録を解除します。

tkinter.READABLE
tkinter.WRITABLE
tkinter.EXCEPTION

   *mask* 引数で使う定数です。


定数
----

以下のシンボル定数は "tkinter" と "tkinter.constants" の両方の名前空間
で利用できます。

tkinter.TRUE
tkinter.YES
tkinter.ON

   真と評価される値で、いずれも整数 "1" と等しい値です。

tkinter.FALSE
tkinter.NO
tkinter.OFF

   偽と評価される値で、いずれも整数 "0" と等しい値です。

tkinter.N
tkinter.S
tkinter.E
tkinter.W
tkinter.NE
tkinter.NW
tkinter.SE
tkinter.SW
tkinter.NS
tkinter.EW
tkinter.NSEW
tkinter.CENTER

   方位 ("'n'"、"'s'"、"'e'"、"'w'" および対角方向と辺) と "CENTER"
   ("'center'") で、*anchor* オプションや *sticky* オプションの値、
   "Misc.grid_anchor()" などのメソッドで使います。

tkinter.LEFT
tkinter.RIGHT
tkinter.TOP
tkinter.BOTTOM

   パッカーの *side* オプションで使う辺です ("Pack.pack_configure()"
   を参照)。

tkinter.X
tkinter.Y
tkinter.BOTH
tkinter.NONE

   パッカーの *fill* オプションの値で、"'x'"、"'y'"、"'both'"、
   "'none'" です。

tkinter.RAISED
tkinter.SUNKEN
tkinter.FLAT
tkinter.RIDGE
tkinter.GROOVE
tkinter.SOLID

   ウィジェットの立体的な境界を制御する *relief* オプションの値です。

tkinter.HORIZONTAL
tkinter.VERTICAL

   "Scale"、"Scrollbar"、"PanedWindow" などのウィジェットの *orient*
   オプションの値です。

tkinter.CHAR
tkinter.WORD

   "Text" ウィジェットの *wrap* オプションの値で、文字単位または単語単
   位での折り返しを選択します。

tkinter.BASELINE

   テキストの配置を指定する値 "'baseline'" です。

tkinter.INSIDE
tkinter.OUTSIDE

   プレーサーの *bordermode* オプションの値です
   ("Place.place_configure()" を参照)。

tkinter.INSERT
tkinter.CURRENT
tkinter.END
tkinter.ANCHOR
tkinter.SEL
tkinter.SEL_FIRST
tkinter.SEL_LAST

   "Text"、"Entry"、"Listbox"、"Canvas" ウィジェットで使うシンボルによ
   るインデックスです。 "'insert'" (挿入カーソル)、"'current'"、
   "'end'"、"'anchor'"、選択範囲の境界 ("'sel.first'" と "'sel.last'")
   などがあります。

tkinter.ALL

   The special tag "'all'", which matches every item of a "Canvas" or
   every character of a "Text" (for example "canvas.delete(ALL)").

tkinter.NORMAL
tkinter.DISABLED
tkinter.ACTIVE
tkinter.HIDDEN

   さまざまなウィジェットや項目の *state* オプションの値です。

tkinter.CASCADE
tkinter.CHECKBUTTON
tkinter.COMMAND
tkinter.RADIOBUTTON
tkinter.SEPARATOR

   メニュー項目の型で、"Menu.add()" と "Menu.insert()" の *itemType*
   引数に使います。

tkinter.SINGLE
tkinter.BROWSE
tkinter.MULTIPLE
tkinter.EXTENDED

   "Listbox" ウィジェットの *selectmode* オプションの値です。

tkinter.PIESLICE
tkinter.CHORD
tkinter.ARC

   "Canvas" の円弧項目の *style* オプションの値です。

tkinter.BUTT
tkinter.PROJECTING
tkinter.ROUND
tkinter.BEVEL
tkinter.MITER

   "Canvas" の線項目の *capstyle* ("'butt'"、"'projecting'"、
   "'round'") オプションと *joinstyle* ("'round'"、"'bevel'"、
   "'miter'") オプションの値です。

tkinter.FIRST
tkinter.LAST

   "Canvas" の線項目の *arrow* オプションの値で、どちらの端に矢印を付
   けるかを指定します。

tkinter.MOVETO
tkinter.SCROLL

   "Scrollbar" がスクロール対象のウィジェットの "XView.xview()" または
   "YView.yview()" メソッドに渡す第 1 引数です。

tkinter.UNITS
tkinter.PAGES

   "XView.xview_scroll()" と "YView.yview_scroll()" の *what* 引数の値
   です。

tkinter.UNDERLINE
tkinter.NUMERIC
tkinter.DOTBOX

   その他のオプション値である "'underline'"、"'numeric'"、"'dotbox'"
   です。
