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 をサポートするモジュールには、次のものがあります。
tkinterTkinter のメインモジュールです。
tkinter.colorchooserユーザに色を選択させるためのダイアログです。
tkinter.commondialogこのリストの他のモジュールが定義しているダイアログの基底クラスです。
tkinter.filedialogユーザが開きたいファイルや保存したいファイルを指定できるようにする共通のダイアログです。
tkinter.fontフォントの扱いを補助するためのユーティリティです。
tkinter.messagebox標準的な Tk のダイアログボックスにアクセスします。
tkinter.scrolledtext垂直スクロールバー付きのテキストウィジェットです。
tkinter.simpledialog基本的なダイアログと便宜関数 (convenience function) です。
tkinter.ttkTk 8.5 で導入された、テーマを利用するウィジェット群です。 メインの
tkinterモジュールにある従来のウィジェットの多くに代わる、新しいウィジェットを提供します。
その他のモジュール:
_tkinterTcl/Tk への低水準インターフェースを含むバイナリモジュールです。 メインの
tkinterモジュールが自動的にインポートするもので、アプリケーションのプログラマーが直接使ってはいけません。 通常は共有ライブラリ (または DLL) ですが、Python インタープリタに静的にリンクされている場合もあります。idlelibPython の統合開発学習環境 (IDLE) です。
tkinterを使って作られています。tkinter.constantsTkinter の呼び出しでさまざまな引数を渡す際に、文字列の代わりに使えるシンボル定数です。 メインの
tkinterモジュールによって自動的にインポートされます。tkinter.dnd(実験的)
tkinterのドラッグアンドドロップ機能です。 Tk DND に置き換えられた際に非推奨となる予定です。turtleTk ウィンドウ上でタートルグラフィックスを実現します。
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)))
スレッドモデル¶
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 |
オプション名 |
|
1 |
データベース検索用のオプション名 |
|
2 |
データベース検索用のオプションクラス |
|
3 |
デフォルト値 |
|
4 |
現在の値 |
|
以下はプログラム例です:
>>> 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 |
|
%E |
send_event |
%k |
keycode |
%K |
keysym |
%s |
state |
%N |
keysym_num |
%t |
time |
%T |
type |
%w |
|
%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] = valuesets 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()orafter_idle(). id must be an identifier returned by one of those methods; passing a value that is not such an identifier raisesValueError. 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
Noneif 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 itstakefocusoption is set to0. 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
Noneif there is none. Seetk_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
Toplevelwidget.
- 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,PlaceandGridall define the short method namesforget(),info(),slaves(),content()andpropagate(). On a widget the bare names resolve to the pack manager's versions, sincePackandMiscprecedePlaceandGridin the method resolution order, whatever manager actually manages the widget; andconfigure()/config()configure the widget's options, not its geometry. Use the explicitpack_*,grid_*andplace_*methods (andpack,grid,placefor 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_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 までの数です。
- 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 までの数です。
トップレベルウィジェット¶
- 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 はコンテナーの構造を表します。
- 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
Noneif 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 (orNoneif 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.
変数クラス¶
- 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のサブクラスです。 デフォルト値は''です。
- class tkinter.DoubleVar(master=None, value=None, name=None)¶
浮動小数点数を保持する
Variableのサブクラスです。 デフォルト値は0.0です。注釈
浮動小数点数の値は常にピリオド (
.) を小数点として解析されますが、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イベントの場合)。
- keycode¶
押された、または離されたキーのキーコード。
- state¶
イベントの状態。 ほとんどのイベントでは数値、
Visibilityイベントでは文字列です。
- time¶
イベントのタイムスタンプ (ミリ秒単位)。
- char¶
入力された文字を表す文字列 (キーイベントの場合)。
- send_event¶
別のアプリケーションから送信されたイベントなら
True。
- keysym¶
押された、または離されたキーのシンボル名。
- 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.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 と tkinter.constants の両方の名前空間で利用できます。
- 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.RAISED¶
- tkinter.SUNKEN¶
- tkinter.FLAT¶
- tkinter.RIDGE¶
- tkinter.GROOVE¶
- tkinter.SOLID¶
ウィジェットの立体的な境界を制御する relief オプションの値です。
- tkinter.HORIZONTAL¶
- tkinter.VERTICAL¶
Scale、Scrollbar、PanedWindowなどのウィジェットの orient オプションの値です。
- 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 aCanvasor every character of aText(for examplecanvas.delete(ALL)).
- 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.BUTT¶
- tkinter.PROJECTING¶
- tkinter.ROUND¶
- tkinter.BEVEL¶
- tkinter.MITER¶
Canvasの線項目の capstyle ('butt'、'projecting'、'round') オプションと joinstyle ('round'、'bevel'、'miter') オプションの値です。
- tkinter.MOVETO¶
- tkinter.SCROLL¶
Scrollbarがスクロール対象のウィジェットのXView.xview()またはYView.yview()メソッドに渡す第 1 引数です。
- tkinter.UNITS¶
- tkinter.PAGES¶
XView.xview_scroll()とYView.yview_scroll()の what 引数の値です。