-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCalender.py
85 lines (66 loc) · 2.93 KB
/
Calender.py
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
import calendar
import tkinter as tk
from tkinter import ttk, messagebox
class CalendarApp:
def __init__(self, root):
self.root = root
self.root.title("Calendar App")
self.year_var = tk.StringVar()
self.month_var = tk.StringVar()
self.date_var = tk.StringVar()
self.event_var = tk.StringVar()
self.year_var.set(calendar.datetime.datetime.now().year)
self.month_var.set(calendar.datetime.datetime.now().month)
self.create_widgets()
self.load_events()
def create_widgets(self):
frame = ttk.Frame(self.root)
frame.pack(padx=10, pady=10)
ttk.Label(frame, text="Year:").grid(row=0, column=0, sticky="w")
ttk.Entry(frame, textvariable=self.year_var, width=10).grid(row=0, column=1)
ttk.Label(frame, text="Month:").grid(row=0, column=2, sticky="w")
ttk.Entry(frame, textvariable=self.month_var, width=10).grid(row=0, column=3)
ttk.Button(frame, text="Show Calendar", command=self.show_calendar).grid(row=0, column=4)
self.calendar_frame = ttk.Frame(self.root)
self.calendar_frame.pack(padx=10, pady=10)
self.event_frame = ttk.Frame(self.root)
self.event_frame.pack(padx=10, pady=10)
ttk.Label(self.event_frame, text="Date:").grid(row=0, column=0, sticky="w")
ttk.Entry(self.event_frame, textvariable=self.date_var, width=10).grid(row=0, column=1)
ttk.Label(self.event_frame, text="Event:").grid(row=1, column=0, sticky="w")
ttk.Entry(self.event_frame, textvariable=self.event_var, width=30).grid(row=1, column=1)
ttk.Button(self.event_frame, text="Add Event", command=self.add_event).grid(row=1, column=2)
def show_calendar(self):
year = int(self.year_var.get())
month = int(self.month_var.get())
cal_text = calendar.month(year, month)
self.calendar_frame.destroy()
self.calendar_frame = ttk.Frame(self.root)
self.calendar_frame.pack(padx=10, pady=10)
ttk.Label(self.calendar_frame, text=cal_text).grid(row=0, column=0)
def add_event(self):
date = self.date_var.get()
event = self.event_var.get()
if date and event:
events = self.load_events()
events[date] = event
self.save_events(events)
self.date_var.set("")
self.event_var.set("")
messagebox.showinfo("Success", "Event added successfully!")
else:
messagebox.showerror("Error", "Please enter both date and event details.")
def load_events(self):
try:
with open("events.txt", "r") as f:
events = eval(f.read())
except FileNotFoundError:
events = {}
return events
def save_events(self, events):
with open("events.txt", "w") as f:
f.write(str(events))
if __name__ == "__main__":
root = tk.Tk()
app = CalendarApp(root)
root.mainloop()