1
+ from tkinter import ttk
2
+ from tkinter import messagebox
3
+ from tkinter import *
4
+ from tkinter .ttk import Notebook
5
+ from tkcalendar import DateEntry
6
+ import sqlite3
7
+
8
+
9
+ def Addexpense ():
10
+ x = Edate .get ()
11
+ y = Item .get ()
12
+ z = Eexpense .get ()
13
+ data = [x ,y ,z ]
14
+
15
+ with db :
16
+ c = db .cursor ()
17
+ c .execute ("INSERT INTO expense(Dates, Items, Expense) VALUES(?,?,?)" ,(x ,y ,z ))
18
+
19
+
20
+
21
+ def show ():
22
+ x = Edate .get ()
23
+ y = Item .get ()
24
+ z = Eexpense .get ()
25
+ data = [x ,y ,z ]
26
+ connt = sqlite3 .connect ('./Expense Tracker/expense.db' )
27
+ cursor = connt .cursor ()
28
+ cursor .execute ("SELECT * FROM expense" )
29
+ for row in cursor .fetchall ():
30
+ TVExpense .insert ('' ,'end' ,values = row )
31
+
32
+ def delete ():
33
+ with db :
34
+ dee = Delete .get ()
35
+ c = db .cursor ()
36
+ c .execute ("DELETE FROM expense WHERE Items = ?" , (dee ,))
37
+ db .commit ()
38
+ show ()
39
+
40
+ db = sqlite3 .connect ('./Expense Tracker/expense.db' )
41
+ c = db .cursor ()
42
+
43
+ c .execute ("""CREATE TABLE IF NOT EXISTS expense(
44
+ Dates varchar,
45
+ Items varchar,
46
+ Expense integer
47
+ )""" )
48
+ db .commit ()
49
+
50
+ gui = Tk ()
51
+ gui .title ('Expense Tracker' )
52
+ gui .geometry ('700x600' )
53
+
54
+
55
+ Tab = Notebook (gui )
56
+ F1 = Frame (Tab , width = 500 , height = 500 )
57
+
58
+ Tab .add (F1 , text = "Expense" )
59
+
60
+
61
+ Tab .pack (fill = BOTH , expand = 1 )
62
+
63
+ ldate = ttk .Label (F1 , text = "Date" , font = (None ,18 ))
64
+ ldate .grid (row = 0 , column = 0 , padx = 5 , pady = 5 , sticky = 'w' )
65
+
66
+ Edate = DateEntry (F1 , width = 19 , background = 'blue' , foreground = 'white' , font = (None ,18 ))
67
+ Edate .grid (row = 0 , column = 1 , padx = 5 ,pady = 5 , sticky = 'w' )
68
+
69
+ ltitle = ttk .Label (F1 , text = "Items" ,font = (None ,18 ))
70
+ ltitle .grid (row = 1 , column = 0 , padx = 5 , pady = 5 , sticky = 'w' )
71
+
72
+ Item = StringVar ()
73
+
74
+ Etitle = ttk .Entry (F1 , textvariable = Item ,font = (None ,18 ))
75
+ Etitle .grid (row = 1 , column = 1 , padx = 5 , pady = 5 , sticky = 'w' )
76
+
77
+ lexpense = ttk .Label (F1 , text = "Expense" ,font = (None ,18 ))
78
+ lexpense .grid (row = 2 , column = 0 , padx = 5 , pady = 5 , sticky = 'w' )
79
+
80
+ Expense = StringVar ()
81
+
82
+ Eexpense = ttk .Entry (F1 , textvariable = Expense ,font = (None ,18 ))
83
+ Eexpense .grid (row = 2 , column = 1 , padx = 5 , pady = 5 , sticky = 'w' )
84
+
85
+ btn = ttk .Button (F1 ,text = 'Add' , command = Addexpense )
86
+ btn .grid (row = 3 , column = 1 , padx = 5 , pady = 5 , sticky = 'w' , ipadx = 10 , ipady = 10 )
87
+
88
+
89
+ Ldel = ttk .Label (F1 , text = 'Delete' ,font = (None ,18 ))
90
+ Ldel .grid (row = 4 , column = 0 , padx = 5 , pady = 5 , sticky = 'w' )
91
+ Delete = StringVar ()
92
+
93
+ dell = ttk .Entry (F1 , textvariable = Delete ,font = (None ,18 ))
94
+ dell .grid (row = 4 , column = 1 , padx = 5 , pady = 5 , sticky = 'w' )
95
+
96
+ btn2 = ttk .Button (F1 ,text = 'Delete' , command = delete )
97
+ btn2 .grid (row = 5 , column = 1 , padx = 5 , pady = 5 , sticky = 'w' , ipadx = 10 , ipady = 10 )
98
+
99
+ btn1 = ttk .Button (F1 ,text = 'Show' , command = show )
100
+ btn1 .grid (row = 3 , column = 2 , padx = 5 , pady = 5 , sticky = 'w' , ipadx = 10 , ipady = 10 )
101
+
102
+ TVList = ['Date' ,'Item' ,'Expense' ]
103
+ TVExpense = ttk .Treeview (F1 , column = TVList , show = 'headings' , height = 5 )
104
+
105
+ for i in TVList :
106
+ TVExpense .heading (i , text = i .title ())
107
+
108
+ TVExpense .grid (row = 6 , column = 0 , padx = 5 , pady = 5 , sticky = 'w' , columnspan = 3 )
109
+
110
+ gui .mainloop ()
111
+ db .close ()
0 commit comments