Look and Feel!
위의 이미지와 같이 tkinter.Radiobutton 또는 ttk.Radiobutton은 사용자로부터 여러 상태 값 중 하나를 입력받기 위해 사용될 수 있습니다.
아래 샘플 코드를 통해 Radiobutton의 여러 속성(옵션)에 대해 확인할 수 있습니다.
- 아래의 코드에선 총 6개의 Radiobutton을 생성합니다.
- Radiobutton 생성 시 value 속성을 통해 생성하는 해당 위젯에 대한 상태 값을 지정합니다.
- tkinter.Radiobutton은 바탕색 변경이 가능한 background 속성을 지원하나 ttk.Radiobutton은 이를 지원하지 않습니다. 대신 ttk 위젯에선 style 속성을 사용할 수 있습니다.
import tkinter as tk
import tkinter.ttk as ttk
class MainWin(tk.Tk):
def __init__(self):
tk.Tk.__init__(self)
self.win_setting()
self.win_setting_widgets()
def win_setting(self):
self.title('tkinter (things-studio.tistory.com)')
self.geometry('480x320+200+200')
self.minsize(200, 200)
# //start
# -------------------------------------------------------------------------
def win_setting_widgets(self):
self.radiobutton_var = tk.IntVar()
# tkinter.Radiobutton 1
self.tk_radiobutton_1 = tk.Radiobutton(self, text='blue', variable=self.radiobutton_var,
command=self.radiobutton_changed, value=1)
self.tk_radiobutton_1.grid(padx=10, pady=10, sticky=tk.W)
# tkinter.Radiobutton 2
tk.Radiobutton(self, text='red', variable=self.radiobutton_var,
command=self.radiobutton_changed, value=2)\
.grid(padx=10, pady=10, sticky=tk.W)
# tkinter.Radiobutton 3
tk.Radiobutton(self, text='green', variable=self.radiobutton_var,
command=self.radiobutton_changed, value=3, state=tk.DISABLED)\
.grid(padx=10, pady=10, sticky=tk.W)
# ttk.Radiobutton 1
ttk.Radiobutton(self, text='dark goldenrod', variable=self.radiobutton_var,
command=self.radiobutton_changed, value=4)\
.grid(padx=10, pady=10, sticky=tk.W)
# ttk.LabelFrame
labelframe = ttk.LabelFrame(self, text='Lableframe')
labelframe.grid(padx=10, pady=10, sticky=tk.W)
# ttk.Radiobutton 2
ttk.Radiobutton(labelframe, text='dark violet', variable=self.radiobutton_var,
command=self.radiobutton_changed, value=5)\
.grid(row=0, column=0, padx=10, pady=10)
# ttk.Radiobutton 3
ttk.Radiobutton(labelframe, text='orange', variable=self.radiobutton_var,
command=self.radiobutton_changed, value=6)\
.grid(row=0, column=1, padx=10, pady=10)
# ttk.Radiobutton 1 : command=self.radiobutton_changed
def radiobutton_changed(self):
colors = ['light gray', 'blue', 'red', 'green', 'dark goldenrod', 'dark violet', 'orange']
self.configure(background=colors[self.radiobutton_var.get()])
self.tk_radiobutton_1['background'] = colors[self.radiobutton_var.get()]
# -------------------------------------------------------------------------
# end//
if __name__ == '__main__':
MainWin().mainloop()
아래와 같이 Radiobutton엔 문자열 변수 및 문자열 값 할당도 가능합니다.
self.str_var = tk.StringVar()
ttk.Radiobutton(self, text='Apple', variable=self.str_var, value='apple').grid(
sticky=tk.W)
ttk.Radiobutton(self, text='Strawberry', variable=self.str_var, value='strawberry').grid(
sticky=tk.W)
'코딩 > 파이썬 tkinter' 카테고리의 다른 글
[Tkinter] 18장. 위젯의 winfo_children 메서드 (0) | 2020.11.28 |
---|---|
[Tkinter] 17장. LabelFrame (0) | 2020.11.16 |
[Tkinter] 15장. Checkbutton (0) | 2020.11.15 |
[Tkinter] 14장. 위젯의 focus() 메서드 (0) | 2020.11.15 |
[Tkinter] 13장. Entry (0) | 2020.11.12 |