본문 바로가기
  • You find inspiration to create your own path !
업무 자동화/python & CAD

Python 학습] 과일 선택 프로그램

by ToolBOX01 2025. 8. 20.
반응형

▣ 과일 선택 프로그램

이 코드는 customtkinter를 사용하여 간단한 과일 선택 UI를 만드는 파이썬 프로그램입니다. 아래는 주요 기능에 대한 설명입니다:

  • 창 설정: 프로그램이 실행되면 "과일 선택기"라는 제목의 창이 열리며, 창 크기는 300x200 픽셀로 설정됩니다.
  • 과일 옵션: "사과", "바나나", "포도", "수박" 네 가지 과일이 선택 가능한 옵션으로 제공됩니다. 
  • 라디오 버튼: 각 과일에 해당하는 라디오 버튼이 표시되며, 초기값은 "사과"로 설정됩니다. 사용자는 원하는 과일을 선택할 수 있습니다.
  • 선택 버튼: "선택" 버튼을 클릭하면, 선택된 과일이 변수에 저장되고 결과가 아래에 표시됩니다.
  • 결과 표시: "선택한 과일 : [선택된 과일] ~~~" 형식으로 선택된 과일이 버튼 아래에 텍스트로 출력됩니다.

사용 방법:

  1. 프로그램을 실행하면 창이 열립니다.
  2. 원하는 과일을 라디오 버튼으로 선택합니다.
  3. "선택" 버튼을 누르면 선택한 과일이 아래에 표시됩니다.

▣ 코드

import customtkinter as ctk

def select_fruit():
    selected_fruit = var.get()
    label_result.configure(text=f"선택한 과일 : {selected_fruit} ~~~")

# Set up the main window
root = ctk.CTk()
root.title("과일 선택기")
root.geometry("300x200")

# Fruit options
fruits = {
    "사과": "apple",
    "바나나": "banana",
    "포도": "grape",
    "수박": "watermelon"
}

# Variable to store selection
var = ctk.StringVar(value="사과")

# Create UI elements
label = ctk.CTkLabel(root, text="과일을 선택하세요:")
label.pack(pady=10)

for fruit in fruits:
    ctk.CTkRadioButton(root, text=fruit, variable=var, value=fruit).pack(pady=5)

button = ctk.CTkButton(root, text="선택", command=select_fruit)
button.pack(pady=10)

label_result = ctk.CTkLabel(root, text="선택한 과일 : ")
label_result.pack(pady=10)

# Start the application
root.mainloop()

1. 라이브러리 임포트

import customtkinter as ctk
  • 라이브러리를 ctk라는 별칭으로 가져옵니다.
  • 이 라이브러리는 현대적이고 사용자 친화적인 GUI(그래픽 사용자 인터페이스)를 만들기 위해 사용됩니다.

2. 함수 정의

def select_fruit():
    selected_fruit = var.get()
    label_result.configure(text=f"선택한 과일 : {selected_fruit} ~~~")
  • 이 함수는 사용자가 선택한 과일을 처리합니다.
  • var라는 변수에서 현재 선택된 과일(라디오 버튼 값)을 가져옵니다.
  • 선택된 과일을 "선택한 과일 : [과일 이름] ~~~" 형식으로 label_result 라벨에 표시합니다.

3. 메인 원도우 설정

root = ctk.CTk()
root.title("과일 선택기")
root.geometry("300x200")
  • 메인 윈도우를 생성합니다.
  • 윈도우 제목을 "과일 선택기"로 설정합니다.
  • 윈도우 크기를 300x200 픽셀로 설정합니다.

4. 과일 옵션

fruits = {
    "사과": "apple",
    "바나나": "banana",
    "포도": "grape",
    "수박": "watermelon"
}
  • 선택 가능한 과일 목록을 딕셔너리 형태로 정의합니다. 한국어 이름(키)과 영어 이름(값)을 쌍으로 저장합니다.

5. 선택 변수 설정

var = ctk.StringVar(value="사과")
  • 객체를 생성하여 선택된 과일을 저장합니다. 초기값은 "사과"로 설정됩니다.

6. UI 요소 생성

label = ctk.CTkLabel(root, text="과일을 선택하세요:")
label.pack(pady=10)

for fruit in fruits:
    ctk.CTkRadioButton(root, text=fruit, variable=var, value=fruit).pack(pady=5)

button = ctk.CTkButton(root, text="선택", command=select_fruit)
button.pack(pady=10)

label_result = ctk.CTkLabel(root, text="선택한 과일 : ")
label_result.pack(pady=10)

 

  • "과일을 선택하세요:"라는 텍스트를 표시하는 라벨을 생성합니다.
  • 라벨을 윈도우에 배치하고, 위아래에 10픽셀의 패딩을 추가합니다
  • 과일 딕셔너리의 각 항목을 반복하며 라디오 버튼을 생성합니다
  • 각 과일에 해당하는 라디오 버튼을 만들고, 선택값을 var에 저장하며, 버튼 사이에 5픽셀 패딩을 추가합니다.
  • "선택"이라는 텍스트가 있는 버튼을 생성하고, 클릭 시 select_fruit 함수를 실행합니다.
  • 버튼을 윈도우에 배치하고, 위아래에 10픽셀 패딩을 추가합니다.
  • 초기값으로 "선택한 과일 : "을 표시하는 라벨을 생성합니다.
  • 라벨을 윈도우에 배치하고, 위아래에 10픽셀 패딩을 추가합니다.

7. 애플리케이션 실행

root.mainloop()

윈도우를 실행하고 사용자가 창을 닫을 때까지 대기합니다.

사용 방법

  1. customtkinter를 설치하려면 터미널에서 pip install customtkinter 명령어를 실행하세요.
  2. 코드를 실행하면 "과일 선택기" 창이 열립니다.
  3. 라디오 버튼으로 원하는 과일을 선택한 후 "선택" 버튼을 누르면, 선택한 과일이 아래 라벨에 "선택한 과일 : [과일 이름] ~~~" 형식으로 표시됩니다.

이 코드는 간단한 인터랙티브 UI를 제공하며, 필요에 따라 과일 목록이나 디자인을 추가로 수정할 수 있습니다.


 

import customtkinter as ctk

def select_fruit():
    selected_fruit = var.get()
    label_result.configure(text=f"선택한 과일 : {selected_fruit} ~~~")

# Set up the main window
root = ctk.CTk()
root.title("과일 선택기")
root.geometry("300x200")

# Fruit options
fruits = {
    "사과": "apple",
    "바나나": "banana",
    "포도": "grape",
    "수박": "watermelon"
}

# Variable to store selection
var = ctk.StringVar(value="사과")

# Create UI elements
label = ctk.CTkLabel(root, text="과일을 선택하세요:")
label.pack(pady=10)

# Create frames for two radio buttons per row
fruit_list = list(fruits.keys())
for i in range(0, len(fruit_list), 2):
    frame = ctk.CTkFrame(root)
    frame.pack(pady=5, fill="x", padx=20)
    
    # Add first radio button in the row
    ctk.CTkRadioButton(frame, text=fruit_list[i], variable=var, value=fruit_list[i]).pack(side="left", padx=10)
    
    # Add second radio button if it exists
    if i + 1 < len(fruit_list):
        ctk.CTkRadioButton(frame, text=fruit_list[i+1], variable=var, value=fruit_list[i+1]).pack(side="left", padx=10)

button = ctk.CTkButton(root, text="선택", command=select_fruit)
button.pack(pady=10)

label_result = ctk.CTkLabel(root, text="선택한 과일 : ")
label_result.pack(pady=10)

# Start the application
root.mainloop()

 

by korealionkk@gmail.com


반응형