전체 소스코드
from tkinter import *
root = Tk()
root.title("GUI")
root.geometry("300x150")
Label(root, text="메뉴를 선택하세요").pack()
burger_var = IntVar() #int형으로 값 저장
btn_burger1 = Radiobutton(root, text="햄버거", value=1, variable=burger_var)
btn_burger2 = Radiobutton(root, text="치즈버거", value=2, variable=burger_var)
btn_burger3 = Radiobutton(root, text="치킨버거", value=3, variable=burger_var)
btn_burger1.select() #기본값 선택
btn_burger1.pack()
btn_burger2.pack()
btn_burger3.pack()
Label(root, text="음료를 선택하세요").pack()
drink_var = StringVar() #string형으로 값 저장
btn_drint1 = Radiobutton(root, text="콜라", value="콜라", variable=drink_var)
btn_drint2 = Radiobutton(root, text="사이다", value="사이다", variable=drink_var)
btn_drint1.select() #기본값 선택
btn_drint1.pack()
btn_drint2.pack()
def btncmd():
print(burger_var.get()) #햄버거 중 선택된 라디오 항목의 value 출력
print(drink_var.get()) #음료 중 선택된 라디오 항목의 value 출력
btn = Button(root, text="주문", command=btncmd)
btn.pack()
root.mainloop()
Radiobutton
라디오버튼은 여러개의 항목 중 하나만 선택할 수 있다
체크박스의 variable을 구할 때는 체크박스 각각 다른 변수로 설정했는데
Radiobox는 여러개 중 하나를 선택하는거라 항목이 그룹으로 묶여있어야함
때문에 variable 기준으로 같은 값들이 grouping된다
Label(root, text="메뉴를 선택하세요").pack()
burger_var = IntVar() #int형으로 값 저장
btn_burger1 = Radiobutton(root, text="햄버거", value=1, variable=burger_var)
btn_burger2 = Radiobutton(root, text="치즈버거", value=2, variable=burger_var)
btn_burger3 = Radiobutton(root, text="치킨버거", value=3, variable=burger_var)
btn_burger1.select() #기본값 선택
btn_burger1.pack()
btn_burger2.pack()
btn_burger3.pack()


하나를 선택하면 다른 하나가 선택해제된다
Radiobutton grouping
# 햄버거 종류
burger_var = IntVar() #int형으로 값 저장
btn_burger1 = Radiobutton(root, text="햄버거", value=1, variable=burger_var)
# 음료 종류
drink_var = StringVar() #string형으로 값 저장
btn_drint1 = Radiobutton(root, text="콜라", value="콜라", variable=drink_var)
소스코드에서 보면 알 수 있듯이 variable이 다르다
같은 variable 값 안에서 하나밖에 선택이 안된다
variable 기준으로 같은 값들이 grouping된다



햄버거와 음료 각각 하나를 선택하고 주문 버튼을 눌러도
알맞게 출력된다
'python > tkinter' 카테고리의 다른 글
[Python tkinter GUI] #9 Progessbar(진행바) (0) | 2022.12.16 |
---|---|
[Python tkinter GUI] #8 Combobox(콤보박스) (0) | 2022.12.16 |
[Python tkinter GUI] #6 Checkbutton(체크버튼) (0) | 2022.12.16 |
[Python tkinter GUI] #5 Listbox(리스트박스) (0) | 2022.12.16 |
[Python tkinter GUI] #4 Text, Entry(텍스트 입력) (0) | 2022.12.16 |
댓글