기적의 덧셈.jpg
2019/03/24
이전에 만들어본 항목들을 토대로 간단한 계산기를 만들어보았다.
Label setText부분 내부에 바로 input1+input2를 넣었더니
기적의 덧셈 결과가 나와버렸다.(문자열로 인식)
int(input.text())로 숫자로 바꾼 뒤,
setNum(result) 함수를 이용하여 해결하였다.
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QGridLayout,QLabel, QLineEdit
class MyApp(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
#덧셈 버튼. 누를때 작동.
add_btn = QPushButton(self)
add_btn.setText('Add') #단축키 Alt+2
#버튼이 click될때 label이 변경되어야 함.
add_btn.clicked.connect(self.click_add)
#뺄셈 버튼. 누를때 작동.
sub_btn = QPushButton(self)
sub_btn.setText('Subtract') #단축키 Alt+2
#버튼이 click될때 label이 변경되어야 함.
sub_btn.clicked.connect(self.click_sub)
#곱셈 버튼. 누를때 작동.
multi_btn = QPushButton(self)
multi_btn.setText('Multiply') #단축키 Alt+2
#버튼이 click될때 label이 변경되어야 함.
multi_btn.clicked.connect(self.click_multi)
# 나눗셈 버튼. 누를때 작동.
divi_btn = QPushButton(self)
divi_btn.setText('Division') # 단축키 Alt+2
# 버튼이 click될때 label이 변경되어야 함.
divi_btn.clicked.connect(self.click_divi)
#LineEdit선언부. 입력 부분.
self.input1 = QLineEdit(self)
self.input1.setText('6')
self.input2 = QLineEdit(self)
self.input2.setText('3')
#Label선언. 결과값 출력부.
self.lbl = QLabel(self)
self.lbl.setText('Result Here')
#layout 설정
grid = QGridLayout()
grid.addWidget(QLabel('Num :'), 0,0)
grid.addWidget(QLabel('Cal :'), 1,0)
grid.addWidget(QLabel('Result :'), 2,0)
grid.addWidget(self.input1,0,1)
grid.addWidget(self.input2,0,3)
grid.addWidget(add_btn,1,1)
grid.addWidget(sub_btn,1,2)
grid.addWidget(multi_btn,1,3)
grid.addWidget(divi_btn,1,4)
grid.addWidget(self.lbl,2,1)
#창 띄우는 부분
self.setLayout(grid)
self.setWindowTitle('숫자 두개밖에 못 쓰는 계산기')
self.setGeometry(300, 300, 400, 100)
self.show()
def click_add(self):
result = int(self.input1.text()) + int(self.input2.text())
self.lbl.setNum(result)
self.lbl.adjustSize()
def click_sub(self):
result = int(self.input1.text()) - int(self.input2.text())
self.lbl.setNum(result)
self.lbl.adjustSize()
def click_multi(self):
result = int(self.input1.text()) * int(self.input2.text())
self.lbl.setNum(result)
self.lbl.adjustSize()
def click_divi(self):
result = int(self.input1.text()) / int(self.input2.text())
self.lbl.setNum(result)
self.lbl.adjustSize()
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = MyApp()
sys.exit(app.exec_())
반응형
'하드캐리 > 파이썬' 카테고리의 다른 글
파이썬 중요하지만 잘 안 외워지는 내용들 복습 정리 (1) | 2023.05.26 |
---|---|
[Python-PyQt5] LineEdit에 작성 후 Button을 누르면 Label에 표기하기 (0) | 2019.03.24 |