为什么我的简易计算器只能运行一次
import sys,time
from PyQt5.QtWidgets import QApplication, QMainWindow,QTextEdit
from PyQt5 import QtCore,QtGui,QtWidgets
from test_calc import Ui_MainWindow
from design import Ah,Rc,Cca
class Windowshow(QtWidgets.QMainWindow,Ui_MainWindow):
_signal = QtCore.pyqtSignal(str)
def __init__(self):
super(Windowshow,self).__init__()
self.setupUi(self)
self.comboBox_p.activated[str].connect(self.signalslot)
self.comboBox_n.activated[str].connect(self.signalslot)
self.spinBox_p.valueChanged.connect(self.signalslot)
self.spinBox_n.valueChanged.connect(self.signalslot)
self.pushButton_calc.clicked.connect(self.calc)
self._signal.connect(self.signalslot)
self.checkBox_ah.stateChanged.connect(self.checktype)
self.checkBox_rc.stateChanged.connect(self.checktype)
self.checkBox_cca.stateChanged.connect(self.checktype)
def signalslot(self,parameter):
self.name_p=self.comboBox_p.currentText()
self.name_n=self.comboBox_n.currentText()
self.number_p=str(self.spinBox_p.value())
self.number_n=str(self.spinBox_n.value())
def checktype(self):
if self.checkBox_ah.isChecked() \
and self.checkBox_rc.isChecked() \
and self.checkBox_cca.isChecked():
eq_ah=Ah(self.name_p,self.name_n,self.number_p,self.number_n)
eq_rc=Rc(self.name_p,self.name_n,self.number_p,self.number_n)
eq_cca=Cca(self.name_p,self.name_n,self.number_p,self.number_n)
self.result_ah=str(eq_ah.calculation_ah())
self.result_rc=str(eq_rc.calculation_rc())
self.result_cca=str(eq_cca.calculation_cca())
self.result=('20小时率: '+self.result_ah+' Ah\n'
'储备容量: '+self.result_rc+' min\n'
'低温冷启动: '+self.result_cca+' CCA\n')
elif self.checkBox_ah.isChecked() and self.checkBox_rc.isChecked():
eq_ah=Ah(self.name_p,self.name_n,self.number_p,self.number_n)
eq_rc=Rc(self.name_p,self.name_n,self.number_p,self.number_n)
self.result_ah=str(eq_ah.calculation_ah())
self.result_rc=str(eq_rc.calculation_rc())
self.result=('20小时率: '+self.result_ah+' Ah\n'
'储备容量: '+self.result_rc+' min\n')
elif self.checkBox_ah.isChecked() and self.checkBox_cca.isChecked():
eq_ah=Ah(self.name_p,self.name_n,self.number_p,self.number_n)
eq_cca=Cca(self.name_p,self.name_n,self.number_p,self.number_n)
self.result_ah=str(eq_ah.calculation_ah())
self.result_cca=str(eq_cca.calculation_cca())
self.result=('20小时率: '+self.result_ah+' Ah\n'
'低温冷启动: '+self.result_cca+' CCA')
elif self.checkBox_rc.isChecked()and self.checkBox_cca.isChecked():
eq_rc=Rc(self.name_p,self.name_n,self.number_p,self.number_n)
eq_cca=Cca(self.name_p,self.name_n,self.number_p,self.number_n)
self.result_rc=str(eq_rc.calculation_rc())
self.result_cca=str(eq_cca.calculation_cca())
self.result=('储备容量: '+self.result_rc+' min\n'
'低温冷启动: '+self.result_cca+' CCA')
elif self.checkBox_ah.isChecked():
eq_ah=Ah(self.name_p,self.name_n,self.number_p,self.number_n)
self.result_ah=str(eq_ah.calculation_ah())
self.result=('20小时率: '+self.result_ah+' Ah')
elif self.checkBox_rc.isChecked():
eq_rc=Rc(self.name_p,self.name_n,self.number_p,self.number_n)
self.result_rc=str(eq_rc.calculation_rc())
self.result=('储备容量: '+self.result_cca+' min')
elif self.checkBox_cca.isChecked():
eq_cca=Cca(self.name_p,self.name_n,self.number_p,self.number_n)
self.result_cca=str(eq_cca.calculation_cca())
self.result=('低温冷启动: '+self.result_cca+' CCA')
def calc(self):
#显示计算结果
self.textEdit.setText(self.result)
if __name__ == '__main__':
app = QApplication(sys.argv)
mywindow = Windowshow()
mywindow.show()
sys.exit(app.exec_())
我这个代码按下计算按钮后,显示计算结果。但是改变comobox或者spinbox的值后,在点击计算,并没有重新计算。