Tkinter Radio Button

2024. 3. 1. 19:57GUI/tkinter

요약 : 이 튜토리얼에서는 사용자가 상호 배타적인 여러 선택 사항 중 하나를 선택할 수 있도록 Tkinter 라디오 버튼 위젯을 사용하는 방법을 배웁니다.

Tkinter 라디오 버튼 소개

라디오 버튼을 사용하면 상호 배타적인 여러 선택 사항 중 하나를 선택할 수 있습니다.

일반적으로 라디오 버튼은 한 세트로 함께 사용됩니다. 사용자가 선택하기를 원하는 몇 가지 선택 사항이 있는 경우 이는 좋은 옵션입니다.

 

 

라디오 버튼을 만들려면 Radiobutton 위젯을 사용하세요. 다음은 tk.Radiobutton 생성자를 사용하여 라디오 버튼을 만드는 방법을 보여줍니다.

selected = tk.StringVar()
r1 = ttk.Radiobutton(container, text='Option 1', value='Value 1', variable=selected)
r2 = ttk.Radiobutton(container, text='Option 2', value='Value 2', variable=selected)
r3 = ttk.Radiobutton(container, text='Option 3', value='value 3', variable=selected)

각 라디오 버튼에는 서로 다른 값이 있습니다. 그러나 동일한 그룹의 라디오 버튼은 동일한 변수를 공유합니다.

container는 라디오 버튼을 배치하는 상위 위젯입니다.

text 인수는 라디오 버튼에 표시되는 텍스트를 지정합니다.

value 인수는 라디오 버튼이 보유할 값을 지정합니다.

variable은 tk.StringVar()이어야 합니다.

Tkinter 라디오 버튼 예

다음 프로그램은 라디오 버튼을 사용하는 방법을 보여줍니다. Get Selected Size 버튼을 클릭하면, 선택한 크기가 반환됩니다 .

In [1]:
import tkinter as tk
from tkinter import ttk
from tkinter.messagebox import showinfo

# root window
root = tk.Tk()
root.geometry('300x220')
root.resizable(False, False)
root.title('Radio Button Demo')


def show_selected_size():
    showinfo(
        title='Result',
        message=selected_size.get()
    )


selected_size = tk.StringVar()
sizes = (('Small', 'S'),
         ('Medium', 'M'),
         ('Large', 'L'),
         ('Extra Large', 'XL'),
         ('Extra Extra Large', 'XXL'))

# label
label = ttk.Label(text="What's your t-shirt size?")
label.pack(fill='x', padx=5, pady=5)

# radio buttons
for size in sizes:
    r = ttk.Radiobutton(
        root,
        text=size[0],
        value=size[1],
        variable=selected_size
    )
    r.pack(fill='x', padx=5, pady=5)

# button
button = ttk.Button(
    root,
    text="Get Selected Size",
    command=show_selected_size)

button.pack(fill='x', padx=5, pady=5)


root.mainloop()

 

 

요약

  • ttk.Radiobutton(text, variable)는 라디오 버튼을 생성하는 데 사용됩니다. 변수는 tk.StringVar()이어야 합니다.
  • 라디오 버튼 세트는 동일한 variable을 공유합니다.

'GUI > tkinter' 카테고리의 다른 글

Tkinter Listbox  (0) 2024.03.03
Tkinter Combobox  (0) 2024.03.02
Tkinter Checkbox  (0) 2024.02.29
Tkinter Separator  (0) 2024.02.28
Tkinter ScrolledText  (1) 2024.02.27