Tkinter의 라디오 버튼(Radiobutton) 위젯은 사용자가 제시된 여러 선택지 중 오직 하나의 옵션만 선택할 수 있도록 해주는 GUI 요소입니다. 라디오 버튼은 기본적으로 True 또는 False 두 가지 상태 값만 가집니다.
사용자가 어떤 옵션을 선택했는지 그 결과를 확인하고 싶다면 get() 메서드를 활용하면 됩니다. 이 메서드는 변수(variable)에 정의된 객체의 현재 값을 반환하며, 반환된 정수 값을 문자열(str)로 변환한 뒤 레이블(Label) 위젯의 text 속성에 전달하면 선택 결과를 화면에 손쉽게 표시할 수 있습니다.
예제 코드
# 필요한 라이브러리 임포트
from tkinter import *
from tkinter import ttk
# Tkinter 프레임(윈도우) 인스턴스 생성
win = Tk()
# 윈도우 크기 설정
win.geometry("700x350")
# 선택된 옵션의 결과를 가져오는 함수 정의
def selection():
selected = "You selected the option " + str(radio.get())
label.config(text=selected)
radio = IntVar()
Label(text="Your Favourite programming language:", font=('Aerial 11')).pack()
# 각 옵션에 대한 라디오 버튼 정의
r1 = Radiobutton(win, text="C++", variable=radio, value=1, command=selection)
r1.pack(anchor=N)
r2 = Radiobutton(win, text="Python", variable=radio, value=2, command=selection)
r2.pack(anchor=N)
r3 = Radiobutton(win, text="Java", variable=radio, value=3, command=selection)
r3.pack(anchor=N)
# 레이블 위젯 정의
label = Label(win)
label.pack()
win.mainloop()
코드 핵심 포인트
- IntVar(): 정수형 값을 저장하는 Tkinter 전용 변수 클래스로, 모든 라디오 버튼이 하나의 변수를 공유하여 그룹으로 동작하게 됩니다.
- variable: 여러 라디오 버튼을 같은 변수에 연결해 서로 배타적으로 선택되도록 묶어주는 역할을 합니다.
- value: 해당 라디오 버튼이 선택되었을 때 변수에 저장될 고유 값을 지정합니다.
- command: 버튼을 클릭할 때 자동으로 실행되는 콜백 함수를 지정합니다.
실행 결과
위 코드를 실행하면 여러 개의 라디오 버튼이 배치된 창이 나타납니다. 원하는 옵션을 클릭하면, 하단의 레이블에 방금 선택한 항목이 즉시 표시됩니다.
