仅供学习参考
import tkinter
from tkinter import *
from tkinter import messagebox
class MortgageCalculator:
def __init__(self):
win=tkinter.Tk()
win.title('计算贷款金额')
lblMoney=Label(win,text='贷款金额:')
lblMoney.grid(row=0,column=0,padx=5,pady=5,sticky='e')
self.vmoney=IntVar();self.vmoney.set(10000)
entMoney=Entry(win,width=15,textvariable=self.vmoney)
entMoney.grid(row=0,column=1,padx=5,pady=5,sticky='w')
lblYearRate=Label(win,text='贷款年利率:')
lblYearRate.grid(row=1,column=0,padx=5,pady=5,sticky='e')
self.vyearRate=IntVar();self.vyearRate.set(6.5)
entYearRate=Entry(win,width=15,textvariable=self.vyearRate)
entYearRate.grid(row=1,column=1,padx=5,pady=5,sticky='w')
lblYears=Label(win,text='还款年数:')
lblYears.grid(row=2,column=0,padx=5,pady=5,sticky='e')
self.vyears=IntVar();self.vyears.set(2)
entYears=Entry(win,width=15,textvariable=self.vyears)
entYears.grid(row=2,column=1,padx=5,pady=5,sticky='w')
btn_calculate=Button(win,text='计算每月应还款金额',command=self.Calculate)
btn_calculate.grid(row=3,column=0,pady=5,columnspan=2)#横框两列
lbl_payment=Label(win,text='每月应还款金额:')
lbl_payment.grid(row=4,column=0,padx=5,pady=5,sticky='e')
self.vPayment=DoubleVar()
entpayment=Entry(win,width=15,state='readonly',textvariable=self.vPayment)#设置为只读0
entpayment.grid(row=4,column=1,padx=5,pady=5,sticky='w')
win.mainloop()
def Calculate(self):
try:
xMoney=float(self.vmoney.get())
xYearRate=float(self.vyearRate.get())
xYears=int(self.vyears.get())
xMonths=xYears*12
xMonthRate=xYearRate/12
xSum=xMoney*((1+xMonthRate/100)**xMonths)/xMonths
self.vPayment.set(round(xSum,2)) #保留两位小数
except:
messagebox.showerror(title='提示',message='输入错误,重新输入')
MortgageCalculator()