用Tkinter库制作一个小的【贷款利息计数器】应用
#实现GUI可交互式的界面
*输入年利率
*输入贷款年数
*输入贷款总金
*显示月应付金额
*显示总应付金额
*设置一个Button达到启动计算和显示的作用,放置在右下角
最终样本:
1分析界面的Label、Entry和Button的位置,设计Grid网格如图下
设计思路:
- 创建窗口
- 放置小物件
- 实现变量之间的关系
下面给出代码Demo:
from tkinter import *#引入库
class LoanCalculator:
def __init__(self):
window=Tk()#Create window
window.title("Loa Calculator")#windo title
#Create Label小物件 并赋予文本和 网格位置
#row 和 column是位置参数,sticky可为W E S N 或两者容易组合---为居window位置
#Label(父容器,text=“”)函数--传教label小物件,必须含有一个父容器window
#.grid()是网格管理器
#给出五个常量标签的创建
Label(window,text="Annual Interest Rate").grid(row=1,column=1,sticky=W)
Label(window, text="Number of Years").grid(row=2, column=1, sticky=W)
Label(window, text="Loan Amount").grid(row=3, column=1, sticky=W)
Label(window, text="Monthly Payment").grid(row=4, column=1, sticky=W)
Label(window, text="Total Payment").grid(row=5, column=1, sticky=W)
#创建StringVar对象---tk库的字符串变量
#Entry()创建输入域,textvariable是文本变量
#输入的数据被传递给self.annualInterestRateVar
#给出三个输入域的创建
self.annualInterestRateVar=StringVar()
Entry(window,textvariable=self.annualInterestRateVar,
justify=RIGHT).grid(row=1,column=2)
self.numberOfYearsVar=StringVar()
Entry(window,textvariable=self.numberOfYearsVar,
justify=RIGHT).grid(row=2,column=2)
self.LoanAmountVar=StringVar()
Entry(window,textvariable=self.LoanAmountVar,
justify=RIGHT).grid(row=3,column=2)
#变量标签的创建
self.monthlyPaymentVar=StringVar()
lblMonthlyPayment=Label(window,
textvariable=self.monthlyPaymentVar).grid(row=4,column=2,sticky=E)
self.totalPaymemtVar=StringVar()
lblTotalPaymemt=Label(window,
textvariable=self.totalPaymemtVar).grid(row=5,column=2,sticky=E)
#Button(父容器,**args)创建按钮self.command是Button命令,需要在类内部定义后按钮被click可用
btComputePayment=Button(window,text="Compute Payment",
command=self.computePayment).grid(row=6,column=2,sticky=E)
window.mainloop()#循环窗口事件
#定义类方法--按钮command--计算数值并且用.set()方法改变数值
def computePayment(self):
totalPayment=self.gettotalPayment(float(self.LoanAmountVar.get()),
float(self.annualInterestRateVar.get())/100,
int(self.numberOfYearsVar.get()))
monthlyPayment=totalPayment/(12*int(self.numberOfYearsVar.get()))
self.monthlyPaymentVar.set(format(monthlyPayment,"10.2f"))#改变其值
self.totalPaymemtVar.set(format(totalPayment,"10.2f"))#改变其值
def gettotalPayment(self,loanAmount,annualInterestRate,numberOfYears):
totalPayment=loanAmount*(1+annualInterestRate)**numberOfYears
return totalPayment
LoanCalculator()
注意点:
- 1StringVar类型对象不能直接参与计算,需用到int()或者float()
- 2set()方法设置最后的计算值
作者:不喜勿喷,本人只是个初级的python爱好者,望大神指教