Python Tkinter写的个人所得税计算器(原创)
刚学Tkinter两天,边学边写了一个"个人所得税计算器",欢迎大侠们进来指点指点:)python 代码
[*]#!/usr/bin/env python
[*]"""caloulate person taxes"""
[*]from Tkinter import *
[*]import sys
[*]
[*]class tax(Frame):
[*] """caloulate personal tax"""
[*] def __init__(self,parent = None):
[*] Frame.__init__(self,parent)
[*] self.pack(side=TOP)
[*] self.entries = []
[*] for var_value in field_list:
[*] row = Frame(self)
[*] row.pack(side=TOP,fill=X)
[*] Label(row,text=var_value,width=15,height=2).pack(side=LEFT)
[*] ent = Entry(row,bg = 'white')
[*] ent.pack(side=RIGHT,expand=YES,fill=X)
[*] ent.bind('<Return>',(lambda event:self.fetch_value()))
[*] self.entries.append(ent)
[*]
[*] self.init_btn()
[*] self.init_result()
[*]
[*] def fetch_value(self):
[*] """fetch valve and get result"""
[*] result = []
[*] try:
[*] for entry in self.entries:
[*] result.append(entry.get())
[*]
[*] res = self.get_result(result,result)
[*] self.lab_result["text"] = 'Your Salary is %s .\n Your Tax is %s .\n Your Money is %s .\n' % (res,res,res)
[*] self.lab_result["bg"] = 'lightyellow'
[*] self.lab_result["fg"] = 'red'
[*] except ValueError:
[*] self.lab_result["bg"] = 'red'
[*] self.lab_result["fg"] = 'black'
[*] self.lab_result["text"] = 'Error Occur,Please Test Again.'
[*]
[*] def get_result(self,salary,start):
[*] """caloulate tax"""
[*] over = float(salary) - float(start)
[*] tax = ""
[*] if over <= 500:
[*] tax = over*0.05
[*] elif over > 500 and over <= 2000:
[*] tax = over*0.1 - 25
[*] elif over > 2000 and over <= 5000:
[*] tax = over*0.15 - 125
[*] elif over > 5000 and over <= 20000:
[*] tax = over*0.2 - 375
[*] elif over > 20000 and over <= 40000:
[*] tax = over*0.25 - 1375
[*] elif over > 40000 and over <= 60000:
[*] tax = over*0.3 - 3375
[*] elif over > 60000 and over <= 80000:
[*] tax = over*0.35 - 6375
[*] elif over > 80000 and over <= 100000:
[*] tax = over*0.4 - 10375
[*] else:
[*] tax = over*0.45 - 15375
[*] return
[*]
[*] def init_btn(self):
[*] """init control button"""
[*] btn_frame = Frame(self)
[*] btn_frame.pack(expand=YES,fill=X)
[*] btn_submit = Button(btn_frame,text='Submit',command=self.fetch_value)
[*] btn_submit.pack(side=LEFT,expand=YES,fill=X)
[*] Button(btn_frame,text="Reset",command=self.clear_data).pack(side=LEFT,expand=YES,fill=X)
[*] Button(btn_frame,text="Quit",command=sys.exit).pack(side=LEFT,expand=YES,fill=X)
[*]
[*] def init_result(self):
[*] """init result label"""
[*] self.lab_result = Label(self,fg='red',font = ('times',16,'bold'))
[*] self.lab_result.pack(expand=YES,fill=X)
[*]
[*] def clear_data(self):
[*] """clear old data"""
[*] for entry in self.entries:
[*] entry.delete(0,END)
[*] self.lab_result["text"] = ''
[*] self.lab_result["bg"] = '#eeeeee'
[*]
[*]
[*]field_list = ["Type Your Salary:","Local Tax Start:"]
[*]#start process
[*]root = Tk()
[*]root.title('Personal Income caloulate')
[*]root.geometry("350x200+250+50")
[*]per_tax = tax(root)
[*]root.mainloop()
页:
[1]