import tkinter as Tk
class Application(Tk.Frame):
def __init__(self, master=None):
Tk.Frame.__init__(self, master)
self.master.title("Todo List")
self.master.geometry("400x300")
self.ToDoNumber = 0
self.ToDo = []
self.BoolVars = []
self.create_widgets()
self.pack()
def create_widgets(self):
self.EditBox = Tk.Entry(self, width=30)
self.EditBox.grid(row=0, column=0)
Button_Add = Tk.Button(self, text='追加')
Button_Add.bind('<Button-1>', self.DeleteEntryValue)
Button_Add.grid(row=0, column=1)
Button_Delete = Tk.Button(self, text='タスクを消去')
Button_Delete.bind('<Button-1>', self.DeleteTask)
Button_Delete.grid(row=0, column=2)
def DeleteEntryValue(self, event):
txtNew = Tk.StringVar()
txtNew.set(self.EditBox.get())
if txtNew.get() == "": return
val = Tk.BooleanVar()
val.set(False)
ToDoNew = Tk.Checkbutton(self, textvariable=txtNew, variable=val)
self.ToDo.append(ToDoNew)
self.BoolVars.append(val)
self.ToDoNumber += 1
ToDoNew.grid(row=self.ToDoNumber, column=0)
self.EditBox.delete(0, Tk.END)
def DeleteTask(self, event):
delCnt = 0
for i in range(self.ToDoNumber):
j = i - delCnt
if self.BoolVars[j].get():
self.ToDo[j].destroy()
del self.ToDo[j]
del self.BoolVars[j]
delCnt += 1
self.ToDoNumber -= delCnt
root = Tk.Tk()
app = Application(master=root)
app.mainloop()