zoukankan      html  css  js  c++  java
  • 【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_()
  • 相关阅读:
    Python中如何取字典中的键值
    Python中random模块的用法案例
    Python中模块import的使用案例
    Python中模块的定义及案例
    Python中from … import …语句
    Python中模块调用说明
    Python中模块、类、函数、实例调用案例
    Python中读写文件三部曲
    Python中特殊函数__str__()
    Python--网络编程-----基于UDP协议的套接字不会发生粘包
  • 原文地址:https://www.cnblogs.com/colipso/p/3335021.html
Copyright © 2011-2022 走看看