728x90
import tkinter as tk
class Calculator: # Calculator 클래스 정의 : 계산기의 뼈대 역할을 하며 기능적인 GUI 계산기를 만드는 데 필요한 모든 기능을 포함
def __init__(self, master):
self.master = master
master.title("Calculator")
# 입력창(디스플레이 위젯 설정)
self.display = tk.Entry(master, width=30, justify='right', font=('Arial', 13))
self.display.grid(row=0, column=0, columnspan=4, pady=5)
# 버튼
self.create_button('7', 1, 0)
self.create_button('8', 1, 1)
self.create_button('9', 1, 2)
self.create_button('/', 1, 3)
self.create_button('4', 2, 0)
self.create_button('5', 2, 1)
self.create_button('6', 2, 2)
self.create_button('*', 2, 3)
self.create_button('1', 3, 0)
self.create_button('2', 3, 1)
self.create_button('3', 3, 2)
self.create_button('-', 3, 3)
self.create_button('0', 4, 0)
self.create_button('.', 4, 1)
self.create_button('C', 4, 2)
self.create_button('+', 4, 3)
self.create_button('=', 5, 0, 1, 4)
# 버튼 생성 함수
def create_button(self, text, row, col, rowspan=1, columnspan=1):
button = tk.Button(self.master, text=text, height=2, width=5, font=('Arial', 16),
command=lambda: self.button_click(text))
button.grid(row=row, column=col, rowspan=rowspan, columnspan=columnspan, padx=2, pady=2)
# 버튼 클릭 함수
def button_click(self, text):
if text == 'C':
self.display.delete(0, tk.END)
elif text == '=':
try:
result = eval(self.display.get())
self.display.delete(0, tk.END)
self.display.insert(0, result)
except:
self.display.delete(0, tk.END)
self.display.insert(0, "Error!")
else:
self.display.insert(tk.END, text)
root = tk.Tk()
calculator = Calculator(root) # 계산기 인스턴스 생성
root.mainloop()
추가 설명)
eval() 함수 : 매개변수로 받은 expression(=식)을 문자열로 받아서 실행하는 함수
ex) eval("2*3") 라는 문자열이 매개변수로 들어오면 출력 값으로 6을 반환함.
'Develop > Python' 카테고리의 다른 글
[Python] pygame을 설치하고 활용해보자! (0) | 2023.09.08 |
---|---|
[Python] 콘솔에서 단일 키 눌렀을 때 감지하도록 해보자! (0) | 2023.07.23 |
[Python] TypeError: 'int' object is not callable 오류 원인/해결 (0) | 2023.05.25 |
[Python][입문] 코드로 배워보는 강의 - 01. 파이썬 설치, print(), input(), 변수 (0) | 2023.04.15 |
[Python] Pygame 모듈이 설치되지 않는 문제 해결 방법(VSCode 우분투) (0) | 2023.04.03 |