PyQt利率计算Demo
2020-04-05 本文已影响0人
呱呱呱2
0. 效果
image.png1. UI文件
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'rate.ui'
#
# Created by: PyQt5 UI code generator 5.9.2
#
# WARNING! All changes made in this file will be lost!
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(371, 136)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.widget = QtWidgets.QWidget(self.centralwidget)
self.widget.setGeometry(QtCore.QRect(10, 10, 351, 111))
self.widget.setObjectName("widget")
self.gridLayout = QtWidgets.QGridLayout(self.widget)
self.gridLayout.setContentsMargins(0, 0, 0, 0)
self.gridLayout.setObjectName("gridLayout")
self.label_6 = QtWidgets.QLabel(self.widget)
self.label_6.setObjectName("label_6")
self.gridLayout.addWidget(self.label_6, 0, 0, 1, 1)
self.base_doubleSpinBox = QtWidgets.QDoubleSpinBox(self.widget)
self.base_doubleSpinBox.setMaximum(100000000.0)
self.base_doubleSpinBox.setSingleStep(1000.0)
self.base_doubleSpinBox.setProperty("value", 10000.0)
self.base_doubleSpinBox.setObjectName("base_doubleSpinBox")
self.gridLayout.addWidget(self.base_doubleSpinBox, 0, 1, 1, 1)
self.label_2 = QtWidgets.QLabel(self.widget)
self.label_2.setObjectName("label_2")
self.gridLayout.addWidget(self.label_2, 1, 0, 1, 1)
self.rate_doubleSpinBox = QtWidgets.QDoubleSpinBox(self.widget)
self.rate_doubleSpinBox.setMaximum(100.0)
self.rate_doubleSpinBox.setProperty("value", 5.0)
self.rate_doubleSpinBox.setObjectName("rate_doubleSpinBox")
self.gridLayout.addWidget(self.rate_doubleSpinBox, 1, 1, 1, 1)
self.label_3 = QtWidgets.QLabel(self.widget)
self.label_3.setObjectName("label_3")
self.gridLayout.addWidget(self.label_3, 2, 0, 1, 1)
self.years_doubleSpinBox = QtWidgets.QDoubleSpinBox(self.widget)
self.years_doubleSpinBox.setMaximum(100.0)
self.years_doubleSpinBox.setProperty("value", 1.0)
self.years_doubleSpinBox.setObjectName("years_doubleSpinBox")
self.gridLayout.addWidget(self.years_doubleSpinBox, 2, 1, 1, 1)
self.label_4 = QtWidgets.QLabel(self.widget)
self.label_4.setObjectName("label_4")
self.gridLayout.addWidget(self.label_4, 3, 0, 1, 1)
self.total_label = QtWidgets.QLabel(self.widget)
self.total_label.setObjectName("total_label")
self.gridLayout.addWidget(self.total_label, 3, 1, 1, 1)
self.gridLayout.setColumnStretch(0, 1)
self.gridLayout.setColumnStretch(1, 5)
MainWindow.setCentralWidget(self.centralwidget)
self.retranslateUi(MainWindow)
self.base_doubleSpinBox.valueChanged['double'].connect(MainWindow.getResult)
self.rate_doubleSpinBox.valueChanged['double'].connect(MainWindow.getResult)
self.years_doubleSpinBox.valueChanged['double'].connect(MainWindow.getResult)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
MainWindow.setTabOrder(self.base_doubleSpinBox, self.rate_doubleSpinBox)
MainWindow.setTabOrder(self.rate_doubleSpinBox, self.years_doubleSpinBox)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
self.label_6.setText(_translate("MainWindow", "本金"))
self.label_2.setText(_translate("MainWindow", "利率"))
self.label_3.setText(_translate("MainWindow", "年数"))
self.label_4.setText(_translate("MainWindow", "总额"))
self.total_label.setText(_translate("MainWindow", "0"))
2. 逻辑代码
import sys
from PyQt5.QtWidgets import QApplication,QMainWindow
from ui_rate import Ui_MainWindow
class MainWindow(QMainWindow):
def __init__(self,parent=None):
super(MainWindow,self).__init__(parent)
self.ui = Ui_MainWindow()
self.ui.setupUi(self)
self.getResult(0)
def getResult(self,double):
base = self.ui.base_doubleSpinBox.value()
rate = self.ui.rate_doubleSpinBox.value()
year = self.ui.years_doubleSpinBox.value()
#print(total,type(total))
self.ui.total_label.setText(str(base*( (1+rate/100)**year) ))
if __name__ == "__main__":
app = QApplication(sys.argv)
win = MainWindow()
win.show()
sys.exit(app.exec_())