니가 준 상처로 잘 먹고, 잘 살고 있어!!

저는 Python을 취미 삼아 공부하는 연식이 꽤 지난 어른아이로서, 
언제 어디서나 공부한 내용을 찾아보기 쉽도록 제 나름대로 정리하여 블로그에 포스팅하고 있습니다.

Radiobutton.py | Tkinter07.체크 버튼 위젯 생성 

파이썬의 Tkinter 모듈를 활용하여 GUI 프로그램을 만들어 봅니다.

Tkinter의 Radiobutton 위젯으로 체크 버튼을 생성하는 기본 예시와 조건문을 활용한 응용 예시입니다.

 

  1. Radiobutton()을 생성하여 variable의 변수와 value의 값을 지정합니다. 

  2. variable에 지정된 변수를 정의합니다.

  3. value 값을 표시할 실행 함수를 정의합니다.

  4. command 속성에 단 한번만 쓰이는 lambda 표현식으로 실행 함수를 연결합니다.

  5. Radiobutton()과 Button()을 클릭하여 value 값을 확인합니다.

 

좀 더 보기 편하게 LableFrame()으로 화면창을 나눠서 구성하였습니다.

 

Radiobutton.py | 화면에 표시되는 Tkinter의 Radiobutton 위젯

화면에 표시되는 Tkinter의 Radiobutton 위젯

 

Radiobutton.py | Tkinter의 Radiobutton 위젯 예제

from tkinter import *
from PIL import ImageTk, Image

root = Tk()
root.title("Tkinter")  # 타이틀
root.iconbitmap("./Tkinter/xingtu_icon.ico")  # 타이틀 앞에 아이콘 표시
root.geometry("360x240+100+100")  # 가로크기 * 세로크기 + 화면 x좌표 + 화면 y좌표
root.resizable(False, False)  # x(너비), y(높이) 값 변경 불가 (창 크기 변경 불가)


"""
레이블
"""
# LabelFrame : 위젯을 그룹화하는 컨테이너 위젯으로 이름을 표시할 수 있다.
# fill="both" : frame의 높이를 꽉 차게 조정 / expand=True: frame의 넓이를 꽉 차게 조정
r_frame = LabelFrame(root, text="기본 예시", padx=10, pady=10) # inside
r_frame.pack(side="left", fill="both", padx=5, pady=5) # outside

pizza_frame = LabelFrame(root, text="응용 예시", padx=20, pady=10)
pizza_frame.pack(side="left", fill="both", padx=5, pady=5)

value_frame = LabelFrame(root, text="주문 목록", padx=10, pady=10)
value_frame.pack(side="left", fill="both", expand=True, padx=5, pady=5)


"""
기본 예시
"""
def click1(r):
    r_Lable = Label(value_frame, text=r)
    r_Lable.pack()

r = IntVar()
r.set(1) #default value
# anchor=W : 왼쪽으로 정렬
Radiobutton(r_frame, text="Option1", variable=r, value=1,
            command=lambda: click1(r.get())).pack(anchor=W)
Radiobutton(r_frame, text="Option2", variable=r, value=2,
            command=lambda: click1(r.get())).pack(anchor=W)
Radiobutton(r_frame, text="Option3", variable=r, value=3,
            command=lambda: click1(r.get())).pack(anchor=W)
Radiobutton(r_frame, text="Option4", variable=r, value=4,
            command=lambda: click1(r.get())).pack(anchor=W)

"""
응용 예시
"""
def click2(pizza):
    pizza_Lable = Label(value_frame, text=pizza +" 피자!!")
    pizza_Lable.pack()


TOPPINGS = [
    ("고구마", "고구마"),
    ("옥수수", "옥수수"),
    ("토마토", "토마토"),
    ("베이컨", "베이컨"),
]

pizza = StringVar()
pizza.set("고구마")  # default value

for text, topping in TOPPINGS:
    Radiobutton(pizza_frame, text=text, variable=pizza, value=topping).pack()

pizza_Button = Button(pizza_frame, text="피자 주문!", command=lambda: click2(pizza.get()))
pizza_Button.pack()



# 생성된 프로그램을 순회
root.mainloop()

 

저는 Python을 취미 삼아 공부하는 연식이 꽤 지난 어른아이로서,
언제 어디서나 공부한 내용을 찾아보기 쉽도록 나름대로 정리하여 블로그에 포스팅하고 있습니다.

이 글을 공유합시다

facebook twitter kakaoTalk kakaostory naver band