0
我有一個todoList類,它將顯示爲我的列表框小部件。我可以添加任務,然後在完成後將它們放入完成的框中。但我不明白爲什麼我的恢復按鈕無法正常工作。想知道是否有人可以找出問題。列表框小部件。 Todo List
from Tkinter import *
import tkFont
class todoList:
def __init__(self):
self.todo=[]
self.done=[]
def addTask(self,task):
self.todo.append(task)
def completeTask(self,task):
if self.todo.count(task)>0:
self.todo.remove(task)
self.done.append(task)
def restoreList(self, file):
f=open(file, "r")
items=int(f.readline().strip())
for i in range(items):
item=f.readline().strip()
self.todo.append(item)
items= int(f.readline().strip())
for i in range(items):
item=f.readline().strip()
self.done.append(item)
f.close()
todo=todoList()
class App:
def __init__(self,master):
self.todo = todoList()
self.master = master
self.frame = Frame(master)
self.frame.grid()
self.addButton = Button(self.frame, text="Add", command=self.add)
self.addButton.grid(row=1, column=5)
self.saveButton = Button(self.frame, text="Save", command=self.save)
self.saveButton.grid(row=0, column=2)
self.restoreButton = Button(self.frame, text="Restore", command=self.restore)
self.restoreButton.grid(row=0, column=1)
self.button = Button(self.frame, text="Quit", command=self.done)
self.button.grid(row=0, column=4)
self.doneButton = Button(self.frame, text="Done", command=self.done)
self.doneButton.grid(row=0, column=3)
label1 = Label(self.frame, text="Commands ")
label1.grid(row=0, column=0)
label = Label(self.frame, text="New Task:")
label.grid(row=1, column=0)
self.entry = Entry(self.frame)
self.entry.grid(row=1, column=1, columnspan=4)
frame1 = LabelFrame(self.frame, text="Tasks")
frame1.grid(columnspan=7, sticky=E+W)
frame1.columnconfigure(0, weight=1)
self.tasks = Listbox(frame1)
self.tasks.grid(sticky=E+W)
frame2 = LabelFrame(self.frame, text="Completed")
frame2.grid(columnspan=7, sticky=E+W)
frame2.columnconfigure(0, weight=1)
self.completed = Listbox(frame2)
self.completed.grid(sticky=E+W)
def save(self):
self.todo.saveList("tasks.txt")
def restore(self):
self.todo.restoreList("tasks.txt")
items = self.todo.getTasks()
self.tasks.delete(0,END)
for item in items:
self.completed.insert(END,item)
items = self.todo.getCompleted()
self.completed.delete(0,END)
for item in items:
self.completed.insert(END,item)
def add(self):
task = self.entry.get()
self.todo.addTask(task)
self.tasks.insert(END,task)
def done(self):
selection = self.tasks.curselection()
if len(selection) == 0:
return
task = self.tasks.get(selection[0])
self.todo.completeTask(task)
self.tasks.delete(selection[0])
self.completed.insert(END,task)
def quit(self):
self.frame.quit()
self.master.destroy()
root = Tk()
app = App(root)
root.mainloop()
哪裏是'saveList'方法在'todoList'類? –
你在終端上遇到什麼錯誤? – furas