Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit c21f968

Browse files
todo app
created a todo app list in python
1 parent b3c6972 commit c21f968

File tree

2 files changed

+91
-0
lines changed

2 files changed

+91
-0
lines changed

‎Todoapp/screenshot.JPG

27.5 KB
Loading[フレーム]

‎Todoapp/todo.py

Lines changed: 91 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,91 @@
1+
import tkinter
2+
import threading
3+
from tkinter import messagebox
4+
import sys
5+
6+
tasks = []
7+
timer = threading
8+
real_timer = threading
9+
ok_thread = True
10+
11+
12+
def get_entry(event=""):
13+
text = todo.get()
14+
hour = int(time.get())
15+
todo.delete(0, tkinter.END)
16+
time.delete(0, tkinter.END)
17+
todo.focus_set()
18+
add_list(text, hour)
19+
if 0 < hour < 999:
20+
update_list()
21+
22+
23+
def add_list(text, hour):
24+
tasks.append([text, hour])
25+
timer = threading.Timer(hour, time_passed, [text])
26+
timer.start()
27+
28+
29+
def update_list():
30+
if todolist.size() > 0:
31+
todolist.delete(0, "end")
32+
for task in tasks:
33+
todolist.insert("end", "[" + task[0] + "] Time left: " + str(task[1]) + " secondes")
34+
35+
36+
def time_passed(task):
37+
tkinter.messagebox.showinfo("Notification", "Time for : " + task)
38+
39+
40+
def real_time():
41+
if ok_thread:
42+
real_timer = threading.Timer(1.0, real_time)
43+
real_timer.start()
44+
for task in tasks:
45+
if task[1] == 0:
46+
tasks.remove(task)
47+
task[1] -= 1
48+
update_list()
49+
50+
51+
if __name__ == '__main__':
52+
# application
53+
app = tkinter.Tk()
54+
app.geometry("480x680")
55+
app.title("Todolist Remainder")
56+
app.rowconfigure(0, weight=1)
57+
58+
# fenetre
59+
frame = tkinter.Frame(app)
60+
frame.pack()
61+
62+
# widgets
63+
label = tkinter.Label(app, text="Enter work to do:",
64+
wraplength = 200,
65+
justify = tkinter.LEFT)
66+
label_hour = tkinter.Label(app, text="Enter time (secondes)",
67+
wraplength = 200,
68+
justify = tkinter.LEFT)
69+
todo = tkinter.Entry(app, width=30)
70+
time = tkinter.Entry(app, width=15)
71+
send = tkinter.Button(app, text='Add task', fg="#ffffff", bg='#6186AC', height=3, width=30, command=get_entry)
72+
quit = tkinter.Button(app, text='Exit', fg="#ffffff", bg='#EB6464', height=3, width=30, command=app.destroy)
73+
todolist = tkinter.Listbox(app)
74+
if tasks != "":
75+
real_time()
76+
77+
# binding
78+
app.bind('<Return>', get_entry)
79+
80+
# widgets placement
81+
label.place(x=0, y=10, width=200, height=25)
82+
label_hour.place(x=235, y=10, width=200, height=25)
83+
todo.place(x=62, y=30, width=200, height=25)
84+
time.place(x=275, y=30, width=50, height=25)
85+
send.place(x=62, y=60, width=50, height=25)
86+
quit.place(x=302, y=60, width=50, height=25)
87+
todolist.place(x=60, y = 100, width=300, height=300)
88+
89+
app.mainloop()
90+
ok_thread = False
91+
sys.exit("FINISHED")

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /