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_()

Python——GUI编程 利息计算器 作业9(python programming)的更多相关文章

  1. Python GUI编程各种实现的对比

    Python GUI编程各种实现的对比 从 Python 语言的诞生之日起,就有许多优秀的 GUI 工具集整合到 Python 当中,这些优秀的 GUI 工具集,使得 Python 也可以在图形界面编 ...

  2. Python gui编程pyQt5安装步骤t

    Python gui编程pyQt5安装步骤         pip install PyQt5 Pip3 install PyQt5               https://riverbankco ...

  3. Python gui编程pyQt5安装步骤

    Python gui编程pyQt5安装步骤 =============================== -m PyQt5.uic.pyuic  $FileName$ -o $FileNameWit ...

  4. Python GUI 编程

    Python GUI编程(Tkinter) Python 提供了多个图形开发界面的库,几个常用 Python GUI 库如下: Tkinter: Tkinter 模块(Tk 接口)是 Python 的 ...

  5. Python GUI编程(Tkinter) windows界面开发

    Python实现GUI简单的来说可以调用Tkinter库,这样一般的需求都可以实现,显示简单的windows窗口代码如下: python_gui.py 1 #!C:\Python27\python.e ...

  6. Python GUI编程--Tkinter

    今天看到了GUI编程,书上推荐用wxPython,去官网上看了看,发现Windows的最高支持到2.7,我用的是3.4版本,咋办,用自带的库--Tkinter呗,它是Python的默认GUI库,几乎是 ...

  7. python GUI编程tkinter示例之目录树遍历工具

    摘录 python核心编程 本节我们将展示一个中级的tkinter应用实例,这个应用是一个目录树遍历工具:它会从当前目录开始,提供一个文件列表,双击列表中任意的其他目录,就会使得工具切换到新目录中,用 ...

  8. Python -- Gui编程 -- Tkinter的使用 -- 基本控件

    1.按钮 tkBtton.py import tkinter root = tkinter.Tk() btn1 = tkinter.Button(root, anchor=tkinter.E,\ te ...

  9. 【Python核心编程笔记】一、Python中一切皆对象

    Python中一切皆对象 本章节首先对比静态语言以及动态语言,然后介绍 python 中最底层也是面向对象最重要的几个概念-object.type和class之间的关系,以此来引出在python如何做 ...

随机推荐

  1. mysql-mmm实现高可用和部署时须要考虑的问题

    mysql-mmm简介 Multi-Master Replication Manager for MySQL,简称mmm,官方的介绍可以参考mmm官网.好处自然不用说,读写分离,官方称读能做到负载均衡 ...

  2. TCP的ACK原理和延迟确认机制

    某天晚上睡觉前突然想到 tcp的ACK确认是单独发的还是和报文一起发的,下面看一下别人的解答 一.ACK定义TCP协议中,接收方成功接收到数据后,会回复一个ACK数据包,表示已经确认接收到ACK确认号 ...

  3. 使用python脚本进行数据清洗(1)

    1. 原始表 CREATE TABLE ml_100k (userid INT, movieid INT, rating INT, unixtime STRING) ROW FORMAT DELIMI ...

  4. VUE: 移动端长按弹出确认删除地址(2)

    之前有一篇文章也写了长按弹出确认框的功能,在android机上测试过完全没问题,到后面整体测试时发现IOS这个功能长按移除就消失了, 除非长按不松手,用另外一只手点击确定才能完成操作,所以这次做了修改 ...

  5. Servlet中的乱码问题及解决办法

    假设现在有个form表单,当页面中提交一个包含中文的请求时,在服务端有可能出现中文乱码问题. <!DOCTYPE html> <html> <head> <m ...

  6. DOM 事件流与事件处理程序

    ㈠事件流 ▶事件:是文档和浏览器窗口中发生的,特定的交互瞬间. ▶事件流:描述的是从页面中接受事件的顺序   ⑴DOM事件冒泡 定义:事件最开始由最具体的元素(文档中嵌套层次最深的那个节点)接受,然后 ...

  7. join on 和group

                       左边的表是article文章表,右边的是comment文章回复表. 今天mysql查询的时候,遇到了有趣的事,任务是查询数据库需要得到以下格式的文章标题列表,并按 ...

  8. HTML+JS中网页跳转的写法

    1.html中使用meta中跳转,通过meta可以设置跳转时间和页面 <head> <!--只是刷新不跳转到其他页面 --> <meta http-equiv=" ...

  9. Python + cx_Orcale 连接Oracle数据库

    这是我在使用python连接Oracle数据库时遇到的问题.在此做一下总结. 1.pip install cx_Oracle 2.然后还需要在下载一个数据库客户端工具instantclient-bas ...

  10. Jmeter -- 对并发认识的误区

    1. 误区 如下图所示,并发数设置为1000,启动时间设置1s,就是每秒发起1000个请求(错误) 上述的设置,表示在1s内启动1000个线程,之后,jmeter便以最大限度的1000个并发进行压测, ...