Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import sys
- from PyQt5 import uic, QtCore, QtGui
- Qt = QtCore.Qt
- try:
- _encoding = QtGui.QApplication.unicodeUTF8
- def _translate(context,text,disambig):
- return QtGui.QApplication.translate(context,text,disambig, _encoding)
- except AttributeError:
- def _translate(context, text, disambig):
- return QtGui.QApplication.translate(context, text ,disambig)
- class MyWindow(QtGui.QtWidget):
- def __init__(self):
- super(MyWindow, self).__init__()
- uic.loadUi('calculadora.ui', self)
- self.connect(btn0,QtCore.SIGNAL('clicked()'),lambda:self.aniadir('0'))
- self.connect(btn1,QtCore.SIGNAL('clicked()'),lambda:self.aniadir('1'))
- self.connect(btn2,QtCore.SIGNAL('clicked()'),lambda:self.aniadir('2'))
- self.connect(btn3,QtCore.SIGNAL('clicked()'),lambda:self.aniadir('3'))
- self.connect(btn4,QtCore.SIGNAL('clicked()'),lambda:self.aniadir('4'))
- self.connect(btn5,QtCore.SIGNAL('clicked()'),lambda:self.aniadir('5'))
- self.connect(btn6,QtCore.SIGNAL('clicked()'),lambda:self.aniadir('6'))
- self.connect(btn7,QtCore.SIGNAL('clicked()'),lambda:self.aniadir('7'))
- self.connect(btn8,QtCore.SIGNAL('clicked()'),lambda:self.aniadir('8'))
- self.connect(btn9,QtCore.SIGNAL('clicked()'),lambda:self.aniadir('9'))
- self.connect(btn9,QtCore.SIGNAL('clicked()'),lambda:self.aniadir('/'))
- self.connect(btn9,QtCore.SIGNAL('clicked()'),lambda:self.aniadir('-'))
- self.connect(btn9,QtCore.SIGNAL('clicked()'),lambda:self.aniadir('+'))
- self.connect(btn9,QtCore.SIGNAL('clicked()'),lambda:self.aniadir('*'))
- self.connect(btn9,QtCore.SIGNAL('clicked()'),self.evaluar)
- self.show()
- def aniadir (self, que):
- actual = self.QLineEdit.text()
- self.QLineEdit.setText(actual+que)
- def evaluar(self):
- expr = self.QLineEdit.text()
- resultado = eval(str(expr))
- if type (resultado) in [float, int]:
- self.QLineEdit.setText(str(resultado))
- if __name__ == '__main__':
- app = QtGui.QApplication(sys.argv)
- window = MyWindow()
- sys.exit(app.exec_())
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement