Python Qt GUI快速编程-第四章的Exercise例子Interest的python3+pytq5+Qt Designer实现
2016-12-30 11:08
881 查看
本文是本人用python3+pytq5+Qt Designer实现Python Qt GUI快速编程-第四章的Exercise例子Interest,请大家参考。
/home/yrd/eric_workspace/interest/Ui_interest.py
/home/yrd/eric_workspace/interest/interest.py
运行结果
/home/yrd/eric_workspace/interest/Ui_interest.py
# -*- coding: utf-8 -*- from PyQt5 import QtCore, QtGui, QtWidgets class Ui_Dialog(object): def setupUi(self, Dialog): Dialog.setObjectName("Dialog") Dialog.resize(266, 187) Dialog.setSizeGripEnabled(True) self.formLayoutWidget = QtWidgets.QWidget(Dialog) self.formLayoutWidget.setGeometry(QtCore.QRect(10, 10, 241, 163)) self.formLayoutWidget.setObjectName("formLayoutWidget") self.formLayout = QtWidgets.QFormLayout(self.formLayoutWidget) self.formLayout.setContentsMargins(10, 10, 10, 10) self.formLayout.setSpacing(15) self.formLayout.setObjectName("formLayout") self.principalLabel = QtWidgets.QLabel(self.formLayoutWidget) self.principalLabel.setObjectName("principalLabel") self.formLayout.setWidget(0, QtWidgets.QFormLayout.LabelRole, self.principalLabel) self.principalSpinBox = QtWidgets.QDoubleSpinBox(self.formLayoutWidget) self.principalSpinBox.setMinimum(1.0) self.principalSpinBox.setMaximum(1000000000.0) self.principalSpinBox.setProperty("value", 1000.0) self.principalSpinBox.setObjectName("principalSpinBox") self.formLayout.setWidget(0, QtWidgets.QFormLayout.FieldRole, self.principalSpinBox) self.rateLabel = QtWidgets.QLabel(self.formLayoutWidget) self.rateLabel.setObjectName("rateLabel") self.formLayout.setWidget(1, QtWidgets.QFormLayout.LabelRole, self.rateLabel) self.yearsLabel = QtWidgets.QLabel(self.formLayoutWidget) self.yearsLabel.setObjectName("yearsLabel") self.formLayout.setWidget(2, QtWidgets.QFormLayout.LabelRole, self.yearsLabel) self.amountLabel_1 = QtWidgets.QLabel(self.formLayoutWidget) self.amountLabel_1.setObjectName("amountLabel_1") self.formLayout.setWidget(3, QtWidgets.QFormLayout.LabelRole, self.amountLabel_1) self.amountLabel = QtWidgets.QLabel(self.formLayoutWidget) self.amountLabel.setObjectName("amountLabel") self.formLayout.setWidget(3, QtWidgets.QFormLayout.FieldRole, self.amountLabel) self.rateSpinBox = QtWidgets.QDoubleSpinBox(self.formLayoutWidget) self.rateSpinBox.setMinimum(1.0) self.rateSpinBox.setMaximum(100.0) self.rateSpinBox.setProperty("value", 5.0) self.rateSpinBox.setObjectName("rateSpinBox") self.formLayout.setWidget(1, QtWidgets.QFormLayout.FieldRole, self.rateSpinBox) self.yearsComboBox = QtWidgets.QComboBox(self.formLayoutWidget) self.yearsComboBox.setObjectName("yearsComboBox") self.formLayout.setWidget(2, QtWidgets.QFormLayout.FieldRole, self.yearsComboBox) self.retranslateUi(Dialog) QtCore.QMetaObject.connectSlotsByName(Dialog) def retranslateUi(self, Dialog): _translate = QtCore.QCoreApplication.translate Dialog.setWindowTitle(_translate("Dialog", "Interest")) self.principalLabel.setText(_translate("Dialog", "Principal:")) self.principalSpinBox.setPrefix(_translate("Dialog", "$")) self.rateLabel.setText(_translate("Dialog", "Rate:")) self.yearsLabel.setText(_translate("Dialog", "Years:")) self.amountLabel_1.setText(_translate("Dialog", "Amount:")) self.amountLabel.setText(_translate("Dialog", "TextLabel")) self.rateSpinBox.setSuffix(_translate("Dialog", "%")) if __name__ == "__main__": import sys app = QtWidgets.QApplication(sys.argv) Dialog = QtWidgets.QDialog() ui = Ui_Dialog() ui.setupUi(Dialog) Dialog.show() sys.exit(app.exec_())
/home/yrd/eric_workspace/interest/interest.py
# -*- coding: utf-8 -*- """ Module implementing interest. """ from PyQt5.QtCore import pyqtSlot from PyQt5.QtWidgets import QDialog, QApplication from Ui_interest import Ui_Dialog import sys class interest(QDialog, Ui_Dialog): """ Class documentation goes here. """ def __init__(self, parent=None): """ Constructor @param parent reference to the parent widget @type QWidget """ super(interest, self).__init__(parent) self.setupUi(self) self.yearsComboBox.addItems(["{0} years".format(x) for x in range(1, 26)]) @pyqtSlot(float) def on_principalSpinBox_valueChanged(self, p0): """ Slot documentation goes here. @param p0 DESCRIPTION @type float """ self.updateUi() @pyqtSlot(float) def on_rateSpinBox_valueChanged(self, p0): """ Slot documentation goes here. @param p0 DESCRIPTION @type float """ self.updateUi() @pyqtSlot(int) def on_yearsComboBox_currentIndexChanged(self, index): """ Slot documentation goes here. @param index DESCRIPTION @type int """ self.updateUi() def updateUi(self): """Calculates compound interest""" principal = self.principalSpinBox.value() rate = self.rateSpinBox.value() years = self.yearsComboBox.currentIndex() + 1 amount = principal * ((1 + (rate / 100.0)) ** years) self.amountLabel.setText("$ {0:.2f}".format(amount)) if __name__ == "__main__": app = QApplication(sys.argv) dlg = interest() dlg.show() sys.exit(app.exec_())
运行结果
相关文章推荐
- Python Qt GUI快速编程-第四章的Currency例子的python3+pytq5+Qt Designer实现
- Python Qt GUI快速编程-第五章的例子Numbers的python3+pytq5+Qt Designer实现
- Python Qt GUI快速编程-第五章的例子pen的python3+pytq5+Qt Designer实现
- Python Qt GUI快速编程-第四章的digit的python3+pytq5+Qt Designer实现
- Python Qt GUI快速编程-第四章的计算器python3+pytq5+Qt Designer实现
- Python Qt GUI快速编程-第五章的exercise的python3+pytq5+Qt Dersinger实现
- Qt Gui快速编程 第四章 源码
- PYTHON QT GUI快速编程 PYQT编程指南pdf
- Python Qt GUI快速编程第六章代码分析
- 用python3+PyQt5改写Python Qt GUI快速编程的第七章实例Find Dialog
- 用python3+PyQt5改写Python Qt GUI快速编程的第6章实例主窗口
- 用python3+PyQt5改写Python Qt GUI快速编程的第6章实例主窗口 信号及槽如何使用
- Python GUI编程各种实现的对比
- Python GUI编程各种实现的对比
- python3.6+pyqt5 IDE: Pycahrm+Qtdesign 快速开发GUI程序学习资源
- 【编程练习】快速排序,Java和Python实现
- Python-GUI编程之 Tkinter 与 记事本实现心得
- 翻译:《用python和Qt进行GUI编程》——介绍
- 黑白棋算法简单实现与基于Qt的GUI编程的综合应用
- python 实现GUI(图形用户界面)编程