importsysfrom PyQt4.QtCore import *
from PyQt4.QtGui import *
classForm(QDialog):def __init__(self,parent=None):
super(Form,self).__init__(parent)
prinlabel=QLabel('Principal:')
ratelabel=QLabel('Rate:')
yearlabel=QLabel('Years:')
amountlabel=QLabel('Amount:')
self.numlabel=QLabel()
self.prinspinbox=QDoubleSpinBox()
self.ratespinbox=QDoubleSpinBox()
self.yearcombobox=QComboBox()
self.prinspinbox.setRange(1,10000000)
self.prinspinbox.setValue(1000)
self.prinspinbox.setPrefix("$")
self.ratespinbox.setRange(0.0001,1000)
self.ratespinbox.setValue(5)
self.ratespinbox.setSuffix("%")
yearcon=[]for i in range(60):
yearcon.append(str(i+1)+'years')
self.yearcombobox.addItems(yearcon)
grid=QGridLayout()
grid.addWidget(prinlabel,0,0)
grid.addWidget(ratelabel,1,0)4grid.addWidget(yearlabel,2,0)
grid.addWidget(amountlabel,3,0)
grid.addWidget(self.prinspinbox,0,1)
grid.addWidget(self.ratespinbox,1,1)
grid.addWidget(self.yearcombobox,2,1)
grid.addWidget(self.numlabel,3,1)
self.setLayout(grid)
self.setWindowTitle('Interest')
self.connect(self.prinspinbox,SIGNAL('valueChanged(double)'),self.updataUi)
self.connect(self.ratespinbox,SIGNAL('valueChanged(double)'),self.updataUi)
self.connect(self.yearcombobox,SIGNAL('currentIndexChanged(int)'),self.updataUi)defupdataUi(self):
principal=self.prinspinbox.value()
rate=self.ratespinbox.value()
years=self.yearcombobox.currentIndex()+1amount=principal*((1+rate/100)**years)
self.numlabel.setText('$ %0.2f' %amount)
app=QApplication(sys.argv)
form=Form()
form.show()
app.exec_()