Qt Designer를 이용한 UI 생성
각각의 button
을 생성하여, 이름을 부여하고 GUI를 구성하여 calc.ui
로 저장했다.
Qt Designer 연결 후, 각 버튼 기능 부여
import sys
from PyQt5.QtWidgets import *
from PyQt5 import uic
Ui_file = uic.loadUiType("calc.ui")[0]
class WindowClass(QMainWindow, Ui_file):
def __init__(self):
super().__init__()
self.setupUi(self)
self.textEdit.setText('')
self.pushButton0.clicked.connect(lambda: self.appendNum('0'))
self.pushButton1.clicked.connect(lambda: self.appendNum('1'))
self.pushButton2.clicked.connect(lambda: self.appendNum('2'))
self.pushButton3.clicked.connect(lambda: self.appendNum('3'))
self.pushButton4.clicked.connect(lambda: self.appendNum('4'))
self.pushButton5.clicked.connect(lambda: self.appendNum('5'))
self.pushButton6.clicked.connect(lambda: self.appendNum('6'))
self.pushButton7.clicked.connect(lambda: self.appendNum('7'))
self.pushButton8.clicked.connect(lambda: self.appendNum('8'))
self.pushButton9.clicked.connect(lambda: self.appendNum('9'))
self.pushButtonPlus.clicked.connect(lambda: self.appendOperator('+'))
self.pushButtonMinus.clicked.connect(lambda: self.appendOperator('-'))
self.pushButtonMulti.clicked.connect(lambda: self.appendOperator('*'))
self.pushButtonDivision.clicked.connect(lambda: self.appendOperator('/'))
self.pushButtonResult.clicked.connect(lambda: self.result())
self.pushButtonClear.clicked.connect(lambda: self.clear())
def appendNum(self, num):
self.textEdit.setText(self.textEdit.toPlainText() + num)
def appendOperator(self, op):
self.textEdit.setText(self.textEdit.toPlainText() + ' ' + op + ' ')
def result(self):
try:
result = eval(self.textEdit.toPlainText())
self.textEdit.setText(str(result))
except Exception as e:
self.textEdit.setText('error')
print(e)
def clear(self):
self.textEdit.setText('')
app = QApplication(sys.argv)
window = WindowClass()
window.show()
app.exec_()
PyQt5 모듈을 이용해서, 앞서 이름을 부여한 버튼들을 클래스 초기화 시 각각 lambda 함수를 통해 버튼에 기능을 추가한다.
파이썬 실행 시 사용자 GUI 제공 화면
우리가 구성했던 GUI가 잘 생성되었고, 각 버튼을 클릭해서 연산을 해보면, 구현한 기능이 올바르게 동작하는 것을 확인 할 수 있다.
9 * 9
를 입력 후 =
버튼을 클릭해보면, 81
으로 계산되는 것을 확인할 수 있다.
PyQt5와 Qt Designer를 통해 간단한 계산기를 구현해보았다. 이 외에도 새로운 아이디어가 있다면, 직접 구현하면서 흥미를 느껴봤으면 좋겠다.
Uploaded by N2T