개발 같이해요/PYTHON

[ python ] 파이썬으로 계산기 만들기 ( Tkinter 와 grid )

Rio - Moon 2024. 11. 12. 16:49
728x90
반응형

 

파이썬 프로젝트 개발

 

이번 포스팅에서도 파이썬 을 좀 더 잘 익히기 위해 간단한 프로젝트를 진행해보겠습니다.

간단한 계산기 GUI(그래픽 사용자 인터페이스)를 만드는 방법 을 통해 Tkinker 라이브러리 사용법을 배워보도록 하겠습니다.

 

그 외에 파이썬의 연사자 와 함수 에 대해 궁금하시면 아래 포스팅을 같이 참고해주세요


✅  파이썬 프로젝트 정리

[ python ] 파이썬으로 카운트다운 타이머 만들기 (time 모듈 과 while문 )

 

[ python ] 파이썬으로 가위바위보 게임 만들기 (random 모듈 과 조건문 )

 

✅  연산자 문법 정리

 

 

 


 

 

# 1. Tkinter란 무엇인가요?

 

Tkinter는 파이썬에서 GUI를 만들 때 가장 많이 사용하는 라이브러리 중 하나입니다. Tkinter를 사용하면 윈도우 창, 버튼, 레이블 등 다양한 UI 요소를 쉽게 구성할 수 있습니다. 사용법이 간단하고 직관적이기 때문에 초보자도 쉽게 배우고 활용할 수 있습니다.

 

 

 

 

# 2. 계산기 GUI 프로젝트 준비물 

먼저, 파이썬과 Tkinter를 이용해 계산기를 만들기 위한 환경을 준비해봅시다. 대부분의 파이썬 배포판에는 Tkinter가 포함되어 있으므로 별도의 설치 없이 사용할 수 있습니다.

필요 라이브러리 설치

 

대부분의 경우 Tkinter는 파이썬에 기본으로 포함되어 있지만, 설치가 되어 있는지 확인해 볼 필요가 있습니다.

아래 명령어로 확인하고 필요 시 설치하세요.

 

pip install tk

 

 

 

 

# 3.계산기 UI 설계

 

간단한 계산기 프로그램을 만들기 위해 기본적인 사용자 인터페이스(UI)를 설계해야 합니다.

이번 프로젝트 에서는 다음과 같은 기능 들이 포함된 계산기를 만들 것입니다

  • 숫자 버튼 (0-9)
  • 사칙연산 버튼 (+, -, *, /)
  • 결과를 표시할 레이블
  • 계산 버튼 (=)
코드 
import tkinter as tk

def button_click(value):
    current = entry.get()
    entry.delete(0, tk.END)
    entry.insert(0, current + str(value))

def calculate():
    try:
        result = eval(entry.get())
        entry.delete(0, tk.END)
        entry.insert(0, str(result))
    except Exception as e:
        entry.delete(0, tk.END)
        entry.insert(0, "Error")

def clear():
    entry.delete(0, tk.END)

root = tk.Tk()
root.title("계산기")

entry = tk.Entry(root, width=16, font=('Arial', 24), borderwidth=2, relief="solid")
entry.grid(row=0, column=0, columnspan=4)

buttons = [
    ('7', 1, 0), ('8', 1, 1), ('9', 1, 2), ('/', 1, 3),
    ('4', 2, 0), ('5', 2, 1), ('6', 2, 2), ('*', 2, 3),
    ('1', 3, 0), ('2', 3, 1), ('3', 3, 2), ('-', 3, 3),
    ('0', 4, 0), ('.', 4, 1), ('+', 4, 2), ('=', 4, 3),
]

for (text, row, col) in buttons:
    if text == '=':
        button = tk.Button(root, text=text, width=10, height=2, command=calculate)
    else:
        button = tk.Button(root, text=text, width=10, height=2, command=lambda value=text: button_click(value))
    button.grid(row=row, column=col)

clear_button = tk.Button(root, text='C', width=10, height=2, command=clear)
clear_button.grid(row=5, column=0, columnspan=4)

root.mainloop()

 

코드 설명

 

  1. Tkinter 기본 설정: tk.Tk()를 이용해 계산기 창을 생성합니다.
  2. 입력 창 생성: Entry 위젯을 사용하여 사용자가 수식을 입력할 수 있는 창을 만듭니다.
  3. 버튼 생성 및 배치: 숫자 버튼과 연산 버튼을 반복문을 통해 생성하고, grid 메서드를 사용하여 창에 배치합니다.
  4. 기능 정의:
    • button_click(value): 버튼을 클릭할 때마다 입력 창에 해당 값을 추가합니다.
    • calculate(): eval() 함수를 이용해 수식을 계산하고 결과를 표시합니다. 잘못된 수식이 입력될 경우 Error 메시지를 출력합니다.
    • clear(): 입력 창을 초기화합니다.

 

# 4. 계산기 GUI 실행

 

코드를 작성한 후에 프로그램을 실행하면 간단한 계산기 창이 나타납니다.

계산기 화면

 

 

 

사용자는 숫자와 사칙연산 버튼을 클릭해 수식을 입력하고

숫자 입력

 

= 버튼을 눌러 결과를 확인할 수 있습니다.

 

= 버튼

만약 수식이 잘못되었다면, "Error" 메시지가 출력됩니다.

 

error

 

 

 

 

# 4. 마무리

이번 포스팅에서는 파이썬의 Tkinter 라이브러리를 이용해 간단한 계산기 프로그램을 만드는 방법을 알아보았습니다.

Tkinter를 활용하면 비교적 간단하게 GUI 애플리케이션을 개발할 수 있으며, 

 

아래와 같은 기능들을 추가로 개발해 계산기를 업그레이드 시켜보세요

  • 역수 계산 버튼 추가
  • 제곱근 계산 기능 추가
  • 더 나은 UI 디자인: 색상과 글꼴을 변경하거나 버튼 크기를 조정하여 사용자 경험을 개선할 수 있습니다.

 

 

이 프로젝트가 도움이 되셨다면, 댓글로 여러분의 생각이나 추가 질문을 남겨주세요. 즐거운 코딩 되세요!

 

 

 

 

반응형