1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
| # -*- coding: utf-8 -*-
import sys
from time import sleep
from functools import partial
from PyQt5 import (QtWidgets, QtCore)
class Calcul(QtWidgets.QWidget) :
def __init__(self, parent = None) :
super().__init__(parent)
self.lineEdit = QtWidgets.QLineEdit(self)
self.bouton1 = QtWidgets.QPushButton("1", self)
self.bouton1.clicked.connect(partial(self.ajoute, "1"))
self.bouton2 = QtWidgets.QPushButton("2", self)
self.bouton2.clicked.connect(partial(self.ajoute, "2"))
self.bouton3 = QtWidgets.QPushButton("3", self)
self.bouton3.clicked.connect(partial(self.ajoute, "3"))
self.boutonC = QtWidgets.QPushButton("Calculer!", self)
self.boutonC.clicked.connect(self.calcul)
posit = QtWidgets.QGridLayout()
posit.addWidget(self.lineEdit, 0, 0, 1, 3)
posit.addWidget(self.bouton1, 1, 0)
posit.addWidget(self.bouton2, 1, 1)
posit.addWidget(self.bouton3, 1, 2)
posit.addWidget(self.boutonC, 2, 0, 1, 3)
self.setLayout(posit)
def ajoute(self, i):
indcur = self.lineEdit.cursorPosition()
text = self.lineEdit.text()
text = text[:indcur] + i + text[indcur:]
self.lineEdit.setText(text)
self.lineEdit.setCursorPosition(indcur+1)
def calcul(self):
text = self.lineEdit.text()
result = str(eval(text))
QtWidgets.QMessageBox.information(self,
"Résultat",
result)
if __name__ == "__main__" :
app = QtWidgets.QApplication(sys.argv)
fen = Calcul()
fen.show()
sys.exit(app.exec_()) |
Partager