|
|
|||||||||||||||||||||||||||||
| Tkinter Radio Buttons. |
H.Kamifuji . |
|
オプションボタンとも呼ばれるラジオボタンは、Tkinter のグラフィカルユーザーインターフェイス要素で、ユーザーが定義済みのオプションセットの1つを(正確に)選択できるようにします。 ラジオボタンには、テキストまたはイメージを含めることができます。 ボタンはテキストを 1 つのフォントでしか表示できません。 Pythonの関数またはメソッドをラジオボタンに関連付けることができます。 このラジオボタンを押すと、この関数またはメソッドが呼び出されます。 ラジオボタンは、古いラジオで使用されている物理的なボタンの名前に基づいて、ウェーブバンドまたはプリセットラジオ局を選択します。 その>ようなボタンが押された場合、他のボタンがポップアウトされ、押されたボタンは押し込まれたボタンのままになります。 ラジオボタンウィジェットの各グループは、同じ変数に関連付けられている必要があります。 ボタンを押すと、この変数の値が事前定義された特>定の値に変更されます。 |
import tkinter as tk
root = tk.Tk()
v = tk.IntVar()
tk.Label(root,
text="""Choose a
programming language:""",
justify = tk.LEFT,
padx = 20).pack()
tk.Radiobutton(root,
text="Python",
padx = 20,
variable=v,
value=1).pack(anchor=tk.W)
tk.Radiobutton(root,
text="Perl",
padx = 20,
variable=v,
value=2).pack(anchor=tk.W)
root.mainloop()
前の例の結果は次のようになります。
|
多くの場合、2 つ以上のラジオボタンがあります。 各ボタンを定義して書き留めなければならないのは面倒です。 次の例にその解決策を示します。 ボタンテキストとそれに対応する値を含む "languages" というリストがあります。 for ループを使用してすべてのラジオボタンを作成できます。
import tkinter as tk
root = tk.Tk()
v = tk.IntVar()
v.set(1) # initializing the choice, i.e. Python
languages = [
("Python",1),
("Perl",2),
("Java",3),
("C++",4),
("C",5)
]
def ShowChoice():
print(v.get())
tk.Label(root,
text="""Choose your favourite
programming language:""",
justify = tk.LEFT,
padx = 20).pack()
for val, language in enumerate(languages):
tk.Radiobutton(root,
text=language,
padx = 20,
variable=v,
command=ShowChoice,
value=val).pack(anchor=tk.W)
root.mainloop()
前の例の結果は次のようになります。
|
|
空白を含む円形の穴のあるラジオボタンを使用する代わりに、ラジオボタンをボックス内に完全なテキストで表示することができます。 これを行うには、indicatoron( "インジケータオン"の略)オプションを 0 に設定します。これは、ラジオボタンのインジケータが別途必要ないことを意味します。 デフォルトは 1 です。 前の例のRadiobuttonの定義を以下のものと交換します:
tk.Radiobutton(root,
text=language,
indicatoron = 0,
width = 20,
padx = 20,
variable=v,
command=ShowChoice,
value=val).pack(anchor=tk.W)
前の例の結果は次のようになります。
|
| Radio Buttons |
|