zoukankan      html  css  js  c++  java
  • Python——GUI编程 利息计算器 作业9(python programming)

    Python——GUI编程 利息计算器 作业9(python programming)

    import sys
    from PyQt5.QtCore import *
    from PyQt5.QtGui import *
    from PyQt5.QtWidgets import *
    
    class calMoney(QDialog):
        def __init__(self,parent=None):
            super().__init__(parent)
    
            self.setWindowTitle('帅帅的利息计算器')
    
            # 定义QLable时,在快捷键字母前加“&”符号;
            # alt+P
            PrincipalLabel = QLabel("&Principal:")
            self.inpMoney = QDoubleSpinBox()
            self.inpMoney.setPrefix("$ ") # 设置前缀
            self.inpMoney.setRange(0.01,100000000)
            self.inpMoney.setValue(1000)
            PrincipalLabel.setBuddy(self.inpMoney)
    
            RateLabel = QLabel("&Rate:")
            self.inpRate = QDoubleSpinBox()
            self.inpRate.setSuffix(" %") # 设置后缀
            self.inpRate.setValue(5)
            RateLabel.setBuddy(self.inpRate)
    
            YearsLabel = QLabel("&Years:")
            self.inpYears = QComboBox()
            ls=[]
            for i in range(1,11):
                if i==1:
                    year = str(i) + " year"
                else:
                    year = str(i) + " years"
                ls.append(year)
            self.inpYears.addItems(ls)
            YearsLabel.setBuddy(self.inpYears)
    
            AmountLabel = QLabel("&Amount")
            self.oupAmount = QLabel("$ 1102.50")
            AmountLabel.setBuddy(self.oupAmount)   
    
            # 网格布局
            layout = QGridLayout()
            layout.addWidget(PrincipalLabel, 0, 0)
            layout.addWidget(self.inpMoney, 0, 1)
            layout.addWidget(RateLabel, 1, 0)
            layout.addWidget(self.inpRate, 1, 1)
            layout.addWidget(YearsLabel, 2, 0)
            layout.addWidget(self.inpYears, 2, 1)
            layout.addWidget(AmountLabel, 3, 0)
            layout.addWidget(self.oupAmount, 3, 1)
    
            # 信号与槽相连
            self.inpMoney.valueChanged.connect(self.updateAmount)
            self.inpRate.valueChanged.connect(self.updateAmount)
            self.inpYears.currentIndexChanged.connect(self.updateAmount)
    
            self.setLayout(layout)
    
        def updateAmount(self):
            principal = float(self.inpMoney.value())
            rate = float(self.inpRate.value())
            years = int(self.inpYears.currentIndex())
            amount = principal * pow((1 + 0.01 * rate),(years+1))
            self.oupAmount.setText("{0:.2f}".format(amount))
            pass
    
    app = QApplication(sys.argv)
    form = calMoney()
    form.show()
    app.exec_()

  • 相关阅读:
    Excel VB Script
    Excel Text Converter as C# Format
    快捷键
    如何使用 MasterPage
    Excel 오른쪽버튼 윗주
    Oracle Hints
    ASP.NET 弹出窗口
    Log4Net
    word 修改 表宽度
    While 나가는 법
  • 原文地址:https://www.cnblogs.com/caiyishuai/p/13270768.html
Copyright © 2011-2022 走看看