본문 바로가기
Python/PyQt응용

[Python] PyQt 응용/계산기 만들기 - 사칙연산 입력 및 계산 함수 만들기

by 고체물리학 2021. 11. 4.

2021.10.03 - [Python/PyQt응용] - [python] PyQt5 응용 /계산기 만들기 - 레이아웃 배치 (1)

2021.10.11 - [Python/PyQt응용] - [Python] PyQt5 응용/계산기 만들기 - 숫자 입력 함수 만들기

이전 포스팅에 이어 숫자 입력 버튼을 다 구현했으면 계산할 수 있는 함수를 추가할 것이다

 

1. 사칙연산 입력 코드를 작성한다 (+ - * /)

ex) + 버튼을 눌렀을 때 "+"가 화면에 뜨도록 추가

숫자 입력할 때랑 동일하게 함수 추가 plus(+), minus(-), divide(/), multiple(*)

    def plus(self):
        self.number("+")

 

2. 사칙연산 버튼이 여러 번 눌러지지 않도록 조건문을 추가한다

텍스트 상자에 적힌 글을 불러오고 제일 끝에 사칙연산이 있는지 조건문으로 확인한 후에

사칙연산이 있으면 이전 사칙연산 기호를 지우고 새로 추가

사칙연산이 없으면 그냥 추가하도록 수정한다

 

def plus(self):
  exist_text = self.lineEdit.text()
  if((exist_text[-1] == "+")| (exist_text[-1] == "-")|(exist_text[-1] == "*")|(exist_text[-1] == "/")):
	self.lineEdit.setText(exist_text[:-1])
  self.number("+")

 

3. 계산기의 결과를 출력할 수 있는 함수 result 추가

계산기의 출력 값은 eval 함수로 구할 수 있다

eval(계산식)을 적으면 결과값을 반환한다

    def result(self):
        exist_text = self.lineEdit.text()
        self.number("=")
        try:
            ans = eval(exist_text)
            self.lineEdit.setText(str(ans))
        except Exception as e:
            print(e)

 

4. 사칙연산 계산식과 출력 값을 구분할 수 있도록 lineEdit를 추가한다

Qt Designer에서 calculator.ui를 불러와 수정한다

 

    def result(self):
        exist_text = self.lineEdit.text()
        self.number("=")
        try:
            ans = eval(exist_text)
            # self.lineEdit.setText(str(ans))
            self.lineEdit_2.setText(str(ans)) //새로추가한 lineEdit_2에 출력
        except Exception as e:
            print(e)

 

5. 실행화면

https://youtu.be/Wa1WJuwnHxY

 

반응형

댓글