目次
ラジオボタンを作成する
ラジオボタンを作成するためには、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