2018.9.13 贷款月供计算器

贷款月供计算器GUI版

先上效果图

排版布局后续有需要再优化吧,看着略丑。

代码如下,月供的计算公式是写死的,需要修改的自行在代码里更改。

# -*- coding: utf-8 -*-
"""
Created on Thu Sep 13 14:21:32 2018

@author: Administrator
贷款月供计算器
month_pay_calculator
"""
from tkinter import *
root = Tk()
root.title('贷款月供计算器')
root.geometry('440x360')
# 贷款金额文本
Label(root, text="贷款金额").grid(row=0,column=0)
# 贷款期限文本
Label(root, text="贷款期限").grid(row=1,column=0)
# 贷款类型文本
Label(root, text="贷款类型").grid(row=2,column=0,rowspan=2,columnspan=2)
# 利息文本
Label(root, text="年化利率").grid(row=3,column=2,rowspan=2,columnspan=2)

# 贷款金额输入框
var1 = IntVar()
Entry(root, textvariable = var1).grid(row=0,column=1)
# 贷款期限输入框
var2 = IntVar()
Entry(root, textvariable = var2).grid(row=1,column=1)

#root=Tk()
v=StringVar()
loan=['个人住房贷款','个人汽车贷款','个人经营性贷款','个人消费贷款','个人助学贷款','农户贷款','其他']
loan_pay = {'个人住房贷款':0.049,
            '个人汽车贷款':0.035,
            '个人经营性贷款':0.075,
            '个人消费贷款':0.24,
            '个人助学贷款':0.045,
            '农户贷款':0.075,
            '其他':0.24}

#功能函数
def msg(text_):
    top = Toplevel()
    top.geometry('132x76')
    top.title('提示')
    Message(top, text=text_,bg='FireBrick', font=('times', 20, 'italic')).grid()
    
#功能函数
def ptr():
    kind = v.get()
    if kind=='':
        msg('请选择贷款类型!')
    fee = var_list[loan.index(kind)].get()
    amount = var1.get()
    period = var2.get()
    xxhb = var3.get()
    if amount==0:
        msg('请填写贷款金额!')
    if period==0:
        msg('请填写贷款期数!')        
    if kind=='个人住房贷款':
        month_pay = amount*(fee/12)*(1+fee/12)**period/((1+fee/12)**period-1)
    elif xxhb:
        month_pay = amount*fee/12
    else:
        month_pay = amount*fee/12 + amount/period
    month_pay_r = round(month_pay,2)
    Label(root, text=month_pay_r, bg="Thistle", font=("黑体",12), width=16, height=2).grid(row=15,column=2)

#单选框
j = 5
var_list = list()
for i in loan:
    v_e = DoubleVar()
    var_list.append(v_e)
    Radiobutton(root,text=i,variable=v,value=i).grid(row=j,column=0,columnspan=2)
    Entry(root,textvariable=v_e).grid(row=j,column=2,sticky=W)
    v_e.set(loan_pay[i])
    j += 1

#复选框(先息后本)
var3 = BooleanVar()
Checkbutton(root,text='先息后本',variable=var3).grid(row=12,column=1,rowspan=2,sticky=W)
    
#功能函数
def default():
    for i in loan:
        var_list[loan.index(i)].set(loan_pay[i])

#默认利率
Button(root, text="默认利率",bg='PaleGoldenrod',bd=2,font=("楷体",12),width=8, height=1,command=default).grid(row=10,column=4)

#计算按钮
Button(root, text="计算",bg='MediumSlateBlue',bd=2,font=("楷体",14),width=7, height=1,command=ptr).grid(row=12,column=4)


#贷款月供
Label(root, text="贷款月供", bg="DarkSeaGreen", font=("黑体",12), width=16, height=2).grid(row=15,column=1)
Label(root, text='-', bg="Thistle", font=("黑体",12), width=16, height=2).grid(row=15,column=2)

root.mainloop()

要做成exe格式请参考

http://www.cnblogs.com/gopythoner/p/6337543.html

GUI相关请参考

https://www.cnblogs.com/progor/p/8505097.html

http://www.cnblogs.com/kaituorensheng/p/3287652.html

https://www.cnblogs.com/kongzhagen/p/6154826.html

附上exe文件,自行杀毒。

链接:https://pan.baidu.com/s/1whJP-wNBGg147d1C8j-FYA 密码:uphq

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值