Tkinter チュートリアル - チェックボックス Checkbutton
- Tkinter Checkbutton の基本的な例
- Tkinter チェックボタン選択/選択解除
- Tkinter チェックボタンの状態切り替え
- Tkinter Checkbutton コールバック関数のバインディング
- Tkinter チェックボタンのデフォルト値の変更
Checkbutton
多選択ボタンコントロールは、複数のオプションを含むコントロールです。多選択ボタンはテキストまたは画像を含むことができます。多選択ボタンをクリックするときに呼び出すコールバック関数をバインドすることもできます。
既存の親ウィンドウに Checkbutton
ウィジェットを作成するには、使用します
tk.Checkbutton(parent, option, ...)
Tkinter Checkbutton の基本的な例
import tkinter as tk
app = tk.Tk()
app.geometry("150x100")
chkValue = tk.BooleanVar()
chkValue.set(True)
chkExample = tk.Checkbutton(app, text="Check Box", var=chkValue)
chkExample.grid(column=0, row=0)
app.mainloop()
chkValue = tk.BooleanVar()
各チェックボタンは変数に関連付ける必要があります。変数のデータ型は、選択/選択解除されたときにチェックボタンによって決定されます。
chkValue.set(True)
チェックボタンの元の値を設定します。それはただ Boolean
データタイプに与えられただけですので、ここでは二つのオプションしかありません、True
または False
。
chkExample = tk.Checkbutton(app, text="Check Box", var=chkValue)
これで、上で作成した変数 chkValue
を使用して、checkbutton
インスタンスが最終的に作成されます。
chkExample.grid(column=0, row=0)
Tkinter ラベル部分に紹介されている pack
以外に、grid
は別のタイプの Tkinter レイアウトマネージャです。
Tkinter には 3つのレイアウト/ジオメトリマネージャーがあり、
pack
grid
place
このチュートリアルの 1つのセクションで、これらのレイアウト/ジオメトリマネージャーを紹介します。
Tkinter チェックボタン選択/選択解除
ユーザーは、GUI のチェックボタンをクリックして、ボタンを選択または選択解除できます。select()
と deselect()
を使って選択を選択したり、キャンセルしたりすることもできます。
chkExample.select()
print "The checkbutton value when selected is {}".format(chkValue.get())
chkExample.select()
print "The checkbutton value when deselected is {}".format(chkValue.get())
# Output:
# The checkbutton value when selected is True
# The checkbutton value when deselected is False
ここでは、チェックボタンの値は get()
メソッドによって取得されます。
Tkinter チェックボタンの状態切り替え
チェックボタンの状態は select()
と deselect()
によって修正されてもいいし、toggle()
という方法で切り替えることもできます。
import tkinter as tk
app = tk.Tk()
app.geometry("150x100")
chkValue = tk.BooleanVar()
chkValue.set(True)
chkExample = tk.Checkbutton(app, text="Check Box", var=chkValue)
chkExample.grid(column=0, row=0)
print "The checkbutton original value is {}".format(chkValue.get())
chkExample.toggle()
print "The checkbutton value after toggled is {}".format(chkValue.get())
chkExample.toggle()
print "The checkbutton value after toggled twice is {}".format(chkValue.get())
app.mainloop()
# Output:
# The checkbutton original value is True
# The checkbutton value after toggled is False
# The checkbutton value after toggled twice is True
Tkinter Checkbutton コールバック関数のバインディング
Checkbutton
ウィジェットは、状態を選択するために使用されます。また、選択/選択解除、またはよりより直接的な切り替え時に、コールバック関数をイベントにバインドできます。複数選択ボタンの状態が切り替えられるたびに、コールバック関数がトリガーされます。
import tkinter as tk
from _cffi_backend import callback
def callBackFunc():
print "Oh. I'm clicked"
app = tk.Tk()
app.geometry("150x100")
chkValue = tk.BooleanVar()
chkValue.set(True)
chkExample = tk.Checkbutton(app, text="Check Box", var=chkValue, command=callBackFunc)
chkExample.grid(column=0, row=0)
app.mainloop()
チェックボタンを押すたびに、コンソールに Oh. I'm clicked
プリントアウトしたのが見えます。
Checkbutton クラスの command
オプションは、ボタンが押されたときにコールバック関数またはメソッドをバインドするためのものです。
Tkinter チェックボタンのデフォルト値の変更
選択されていないチェックボタンに対応するデフォルト値は 0
であり、選択されたチェックボタンのデフォルト値は 1
です。また、チェックボタンのデフォルト値とそれに関連するデータ型を他の値またはデータ型に変更することもできます。
import tkinter as tk
app = tk.Tk()
app.geometry("150x100")
chkValue = tk.StringVar()
chkExample = tk.Checkbutton(
app, text="Check Box", var=chkValue, onvalue="RGB", offvalue="YCbCr"
)
chkExample.grid(column=0, row=0)
chkExample.select()
print "The checkbutton value when selected is {}".format(chkValue.get())
chkExample.deselect()
print "The checkbutton value when deselected is {}".format(chkValue.get())
app.mainloop()
# The checkbutton value when selected is RGB
# The checkbutton value when deselected is YCbCr
chkExample = tk.Checkbutton(
app, text="Check Box", var=chkValue, onvalue="RGB", offvalue="YCbCr"
)
onvalue
と offvalue
は、選択状態と非選択状態の値を変更するオプションです。これらは、Int
、String
、Float
などのデータタイプがあり得る。
Checkbutton
チェックボタンに関連する Tkinter データタイプは、その onvalue
と offvalue
のデータタイプと同じであるべきです。そうしないと、_tkinter.TclError
エラーが発生します。