目次
ラジオボタンを作成する
ラジオボタンを作成するためには、tkinter.ttk モジュールの Radiobutton クラスを利用します。
Radiobutton オブジェクトを生成するときは、「親ウィジェット」と「オプション」を指定することができます。
text オプション
text オプションに文字列を指定すると、その文字列がラジオボタンの隣に表示されます。
variable オプション
同じグループのラジオボタンには、
variable オプションに同じ Variable オブジェクトの変数を指定します。
value オプション
value オプションを指定すると、
ラジオボタンをクリックした時に、
指定してある Variable オブジェクトに value の値が渡されます。
ラジオボタンの選択を変更する
クリックすること以外で、ラジオボタンの選択を変更するには、
指定してある Variable オブジェクトの set メソッドを使います。
引数には選択したいラジオボタンの value と等しい値を指定します。
Example
source code
from tkinter import StringVar
from tkinter import Tk
from tkinter import ttk
class MainFrame(ttk.Frame):
def __init__(self, master):
super().__init__(master)
self.configure(padding=(6, 4))
self.pack()
self.make_style()
self.create_widgets()
def make_style(self):
pass
def create_widgets(self):
self.animal_var = StringVar()
self.animal_rb1 = ttk.Radiobutton(self, text="Armadillo",
variable=self.animal_var,
value="a")
self.animal_rb1.pack(side="top", anchor="w", padx=4, pady=4)
self.animal_rb2 = ttk.Radiobutton(self, text="Bear",
variable=self.animal_var,
value="b")
self.animal_rb2.pack(side="top", anchor="w", padx=4, pady=4)
self.button1 = ttk.Button(self, text="Select Armadillo",
width=12,
command=self.button1_action)
self.button1.pack(side="top", anchor="w", padx=4, pady=4)
self.button2 = ttk.Button(self, text="Select Bear",
width=12,
command=self.button2_action)
self.button2.pack(side="top", anchor="w", padx=4, pady=4)
def button1_action(self):
self.animal_var.set("a")
def button2_action(self):
self.animal_var.set("b")
root = Tk()
root.title("Tkinter win")
frame = MainFrame(root)
frame.mainloop()
result
表示内容 (プログラムを実行した直後):
表示内容 (Select Armadillo ボタンをクリックした時):
表示内容 (Select Bear ボタンをクリックした時):
どのラジオボタンが選択されているか調べる
どのラジオボタンが選択されているか調べるには、
Radiobutton オブジェクトの variable オブジェクトで指定した
Variable オブジェクトの get メソッドを使います。
Example
source code
from tkinter import StringVar
from tkinter import Tk
from tkinter import ttk
class MainFrame(ttk.Frame):
def __init__(self, master):
super().__init__(master)
self.configure(padding=(6, 4))
self.pack()
self.make_style()
self.create_widgets()
def make_style(self):
pass
def create_widgets(self):
self.animal_var = StringVar()
self.animal_var.set("Armadillo")
text = "Armadillo"
self.animal_rb1 = ttk.Radiobutton(self, text=text,
variable=self.animal_var,
value=text)
self.animal_rb1.pack(side="top", anchor="w", padx=4, pady=4)
text = "Bear"
self.animal_rb2 = ttk.Radiobutton(self, text=text,
variable=self.animal_var,
value=text)
self.animal_rb2.pack(side="top", anchor="w", padx=4, pady=4)
text = "Cat"
self.animal_rb3 = ttk.Radiobutton(self, text=text,
variable=self.animal_var,
value=text)
self.animal_rb3.pack(side="top", anchor="w", padx=4, pady=4)
self.button1 = ttk.Button(self, text="CHECK",
width=12,
command=self.button1_action)
self.button1.pack(side="top", anchor="w", padx=4, pady=4)
def button1_action(self):
print(self.animal_var.get(), "is selected.")
root = Tk()
root.title("Tkinter win")
frame = MainFrame(root)
frame.mainloop()
result
表示内容:
ターミナル (Bear ラジオボタンを選択して、CHECK ボタンをクリックした時):
Bear is selected.
参考リンク
- TkDocs - Tk Tutorial - Basic Widgets # Radiobutton
- TkDocs - Radiobutton
- effbot.org - The Tkinter Radiobutton Widget
- Tcl Developer Site - ttk::radiobutton manual page - Tk Themed Widget