Repository navigation
Expand file tree
/
Copy pathexpense_tracker_app.py
More file actions
92 lines (76 loc) · 2.23 KB
/
Copy pathexpense_tracker_app.py
File metadata and controls
92 lines (76 loc) · 2.23 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
import tkinter as tk
from tkinter import ttk
expenses = []
def add_expense():
name = name_entry.get()
category = category_var.get()
amount = amount_entry.get()
if name and category and amount:
expenses.append((name, category, amount))
expense_list.insert("", "end", values=(name, category, amount))
update_total()
name_entry.delete(0, tk.END)
amount_entry.delete(0, tk.END)
def update_total():
total = 0
for name, category, amount in expenses:
total += float(amount)
total_label.config(text=f"Total Spent: ₹{total}")
# Window
root = tk.Tk()
root.title("Expense Tracker")
root.geometry("450x450")
root.configure(bg="#1e1e2f")
# Title
title = tk.Label(
root,
text="Expense Tracker",
font=("Helvetica", 18, "bold"),
fg="white",
bg="#1e1e2f"
)
title.pack(pady=15)
frame = tk.Frame(root, bg="#1e1e2f")
frame.pack()
# Name
tk.Label(frame, text="Expense Name", fg="white", bg="#1e1e2f").grid(row=0, column=0, pady=5, padx=10)
name_entry = tk.Entry(frame)
name_entry.grid(row=0, column=1, pady=5)
# Category
tk.Label(frame, text="Category", fg="white", bg="#1e1e2f").grid(row=1, column=0, pady=5, padx=10)
category_var = tk.StringVar()
category_dropdown = ttk.Combobox(frame, textvariable=category_var)
category_dropdown["values"] = ("Food", "Transport", "Shopping", "Bills", "Entertainment")
category_dropdown.grid(row=1, column=1)
# Amount
tk.Label(frame, text="Amount", fg="white", bg="#1e1e2f").grid(row=2, column=0, pady=5, padx=10)
amount_entry = tk.Entry(frame)
amount_entry.grid(row=2, column=1)
# Button
add_button = tk.Button(
root,
text="Add Expense",
bg="#4CAF50",
fg="white",
font=("Arial", 10, "bold"),
padx=10,
pady=5,
command=add_expense
)
add_button.pack(pady=15)
# Expense table
expense_list = ttk.Treeview(root, columns=("Name","Category","Amount"), show="headings", height=8)
expense_list.heading("Name", text="Name")
expense_list.heading("Category", text="Category")
expense_list.heading("Amount", text="Amount")
expense_list.pack(pady=10)
# Total
total_label = tk.Label(
root,
text="Total Spent: ₹0",
font=("Arial", 12, "bold"),
fg="#4CAF50",
bg="#1e1e2f"
)
total_label.pack(pady=10)
root.mainloop()