leonheart 发表于 2017-5-6 09:50:43

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]
查看完整版本: Python Tkinter写的个人所得税计算器(原创)