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

사용 방법:
- 프로그램을 실행하면 창이 열립니다.
- 원하는 과일을 라디오 버튼으로 선택합니다.
- "선택" 버튼을 누르면 선택한 과일이 아래에 표시됩니다.
▣ 코드
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()
윈도우를 실행하고 사용자가 창을 닫을 때까지 대기합니다.
사용 방법
- customtkinter를 설치하려면 터미널에서 pip install customtkinter 명령어를 실행하세요.
- 코드를 실행하면 "과일 선택기" 창이 열립니다.
- 라디오 버튼으로 원하는 과일을 선택한 후 "선택" 버튼을 누르면, 선택한 과일이 아래 라벨에 "선택한 과일 : [과일 이름] ~~~" 형식으로 표시됩니다.
이 코드는 간단한 인터랙티브 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

반응형
'업무 자동화 > python & CAD' 카테고리의 다른 글
| 블랜더와 파이썬] 파이썬으로 Blender 파일 만들기 (0) | 2025.08.21 |
|---|---|
| 블랜더와 파이썬 (1) | 2025.08.21 |
| Python 기초 학습] 분기문(if~~) (0) | 2025.08.20 |
| Python 기초 학습] 딕셔너리(dictionary) (0) | 2025.08.20 |
| Python 기초 학습] List (0) | 2025.08.20 |