为什么我的简易计算器只能运行一次

门外汉_007 2018-11-01 11:22:34
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的值后,在点击计算,并没有重新计算。
...全文
62 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

37,720

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧