使用PyQt5实现一个简单的图形界面计算器程序 点击按钮输入数字,在显示区域(白色只读框)回显 点击运算符输入运算符 点击等号(=)后,显示等号前计算式的计算结果 点击加减乘除运算符后,显示之前计算式的计算结果 点击按钮“Backspace“删除上一个输入的数字或运算符 点击按钮“C”清除已输入内容,并清除显示区域中的内容
时间: 2024-02-27 17:57:56 浏览: 104
好的,以下是一个简单的图形界面计算器程序的实现,使用了PyQt5库:
```python
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QLineEdit, QPushButton, QVBoxLayout
class Calculator(QWidget):
def __init__(self):
super().__init__()
self.setWindowTitle('Calculator')
self.setGeometry(100, 100, 300, 400)
self.initUI()
def initUI(self):
self.answer_label = QLabel(self)
self.answer_label.setStyleSheet('background-color:white')
self.answer_label.setGeometry(10, 10, 280, 50)
self.result_label = QLabel(self)
self.result_label.setStyleSheet('background-color:white')
self.result_label.setGeometry(10, 70, 280, 50)
self.one_button = QPushButton('1', self)
self.one_button.setGeometry(10, 130, 50, 50)
self.one_button.clicked.connect(lambda: self.add_to_answer('1'))
self.two_button = QPushButton('2', self)
self.two_button.setGeometry(70, 130, 50, 50)
self.two_button.clicked.connect(lambda: self.add_to_answer('2'))
self.three_button = QPushButton('3', self)
self.three_button.setGeometry(130, 130, 50, 50)
self.three_button.clicked.connect(lambda: self.add_to_answer('3'))
self.four_button = QPushButton('4', self)
self.four_button.setGeometry(10, 190, 50, 50)
self.four_button.clicked.connect(lambda: self.add_to_answer('4'))
self.five_button = QPushButton('5', self)
self.five_button.setGeometry(70, 190, 50, 50)
self.five_button.clicked.connect(lambda: self.add_to_answer('5'))
self.six_button = QPushButton('6', self)
self.six_button.setGeometry(130, 190, 50, 50)
self.six_button.clicked.connect(lambda: self.add_to_answer('6'))
self.seven_button = QPushButton('7', self)
self.seven_button.setGeometry(10, 250, 50, 50)
self.seven_button.clicked.connect(lambda: self.add_to_answer('7'))
self.eight_button = QPushButton('8', self)
self.eight_button.setGeometry(70, 250, 50, 50)
self.eight_button.clicked.connect(lambda: self.add_to_answer('8'))
self.nine_button = QPushButton('9', self)
self.nine_button.setGeometry(130, 250, 50, 50)
self.nine_button.clicked.connect(lambda: self.add_to_answer('9'))
self.zero_button = QPushButton('0', self)
self.zero_button.setGeometry(70, 310, 50, 50)
self.zero_button.clicked.connect(lambda: self.add_to_answer('0'))
self.plus_button = QPushButton('+', self)
self.plus_button.setGeometry(190, 130, 50, 50)
self.plus_button.clicked.connect(lambda: self.add_to_answer('+'))
self.minus_button = QPushButton('-', self)
self.minus_button.setGeometry(190, 190, 50, 50)
self.minus_button.clicked.connect(lambda: self.add_to_answer('-'))
self.multiply_button = QPushButton('*', self)
self.multiply_button.setGeometry(190, 250, 50, 50)
self.multiply_button.clicked.connect(lambda: self.add_to_answer('*'))
self.divide_button = QPushButton('/', self)
self.divide_button.setGeometry(190, 310, 50, 50)
self.divide_button.clicked.connect(lambda: self.add_to_answer('/'))
self.equal_button = QPushButton('=', self)
self.equal_button.setGeometry(250, 310, 50, 50)
self.equal_button.clicked.connect(self.calculate_answer)
self.clear_button = QPushButton('C', self)
self.clear_button.setGeometry(250, 130, 50, 50)
self.clear_button.clicked.connect(self.clear_answer)
self.backspace_button = QPushButton('Backspace', self)
self.backspace_button.setGeometry(250, 190, 50, 50)
self.backspace_button.clicked.connect(self.backspace_answer)
def add_to_answer(self, value):
current_answer = self.answer_label.text()
self.answer_label.setText(current_answer + value)
def calculate_answer(self):
current_answer = self.answer_label.text()
try:
result = eval(current_answer)
except:
result = 'Error'
self.result_label.setText(str(result))
def clear_answer(self):
self.answer_label.setText('')
self.result_label.setText('')
def backspace_answer(self):
current_answer = self.answer_label.text()
self.answer_label.setText(current_answer[:-1])
if __name__ == '__main__':
app = QApplication(sys.argv)
calc = Calculator()
calc.show()
sys.exit(app.exec_())
```
这个程序有一个显示区域和一些按钮,可以输入数字和运算符,点击等号可以计算结果,点击Backspace可以删除上一个输入的数字或运算符,点击C可以清除已输入内容,并清除显示区域中的内容。