【Python】GUI 练习1--利率计算器
import sys from PyQt4.QtCore import * from PyQt4.QtGui import * class Form(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)4 grid.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) def updataUi(self): principal=self.prinspinbox.value() rate=self.ratespinbox.value() years=self.yearcombobox.currentIndex()+1 amount=principal*((1+rate/100)**years) self.numlabel.setText('$ %0.2f' % amount) app=QApplication(sys.argv) form=Form() form.show() app.exec_()