Python :: Aufgabe #236 :: Lösung #2
2 Lösungen

#236
Windows Forms Taschenrechner
Anfänger - Python
von paddlboot
- 04.12.2019 um 17:09 Uhr
Erstelle mit Hilfe von Windows Forms einen Taschenrechner!
- Der Taschenrechner soll zwei Zahlen speichern können.
- Wie bei einem Taschenrechner üblich, sollen alle Zahleneingaben gesammelt werden bis der Operator gewählt wurde.
- Mit jedem Drücken einer Zahlentaste wird der Variable also eine Dezimalstelle hinzugefügt.
- Wenn ein Operator ausgewählt wurde, soll die erste eingegebene Zahl gespeichert werden, ebenso der Operator (in einer separaten Variable).
- Mit Drücken der Ergebnis Taste (=) soll das Ergebnis in der selben Textbox ausgegeben werden, wie die, in der die Zahlen eingegeben wurden.
Im Anhang ein Beispiel wie ich das gelöst habe.
- Der Taschenrechner soll zwei Zahlen speichern können.
- Wie bei einem Taschenrechner üblich, sollen alle Zahleneingaben gesammelt werden bis der Operator gewählt wurde.
- Mit jedem Drücken einer Zahlentaste wird der Variable also eine Dezimalstelle hinzugefügt.
- Wenn ein Operator ausgewählt wurde, soll die erste eingegebene Zahl gespeichert werden, ebenso der Operator (in einer separaten Variable).
- Mit Drücken der Ergebnis Taste (=) soll das Ergebnis in der selben Textbox ausgegeben werden, wie die, in der die Zahlen eingegeben wurden.
Im Anhang ein Beispiel wie ich das gelöst habe.
#2

von Gisbert5020 (3120 Punkte)
- 15.04.2020 um 16:06 Uhr

import sys from PyQt5.QtCore import Qt from PyQt5.QtWidgets import QApplication,QGridLayout,QLineEdit,QMainWindow,QPushButton,QVBoxLayout,QWidget class Rechner(QMainWindow): def __init__(self): super().__init__() self.setWindowTitle("Rechner") self.setFixedSize(240, 275) self.vlayout = QVBoxLayout() self.centralwidget = QWidget(self) self.setCentralWidget(self.centralwidget) self.centralwidget.setLayout(self.vlayout) self.anzeige() self.tastenerstellen() def anzeige(self): self.anzeige = QLineEdit() self.anzeige.setFixedHeight(35) self.anzeige.setAlignment(Qt.AlignRight) self.anzeige.setReadOnly(True) self.vlayout.addWidget(self.anzeige) def tastenerstellen(self): self.tasten = {} tastenlayout = QGridLayout() tasten = { "7": (0, 0), "8": (0, 1), "9": (0, 2), "+": (0, 3), "4": (1, 0), "5": (1, 1), "6": (1, 2), "-": (1, 3), "1": (2, 0), "2": (2, 1), "3": (2, 2), "*": (2, 3), "0": (3, 0), "C": (3, 1), "=": (3, 2), "/": (3, 3), } for text, pos in tasten.items(): self.tasten[text] = QPushButton(text) self.tasten[text].setFixedSize(40, 40) self.tasten[text].pressed.connect(self.anzeigen) tastenlayout.addWidget(self.tasten[text], pos[0], pos[1]) self.vlayout.addLayout(tastenlayout) def anzeigen(self): sender = self.sender() if sender.text() != "=" and sender.text() != 'C': self.anzeige.setText(self.anzeige.text()+sender.text()) elif sender.text() == 'C': self.anzeige.setText('') else: self.anzeige.setText(str(eval(self.anzeige.text()))) if __name__ == "__main__": app = QApplication(sys.argv) rechner=Rechner() rechner.show() app.exec_()
Kommentare:
Für diese Lösung gibt es noch keinen Kommentar
Seite 1 von 0
1