在Python Tkinter中输入键绑定的响应非常慢

在Python Tkinter中输入键绑定的响应非常慢,python,python-3.x,performance,tkinter,Python,Python 3.x,Performance,Tkinter,所以我在使用Python和Tkinter,我在制作一个待办事项列表。除此之外,当我按ENTER键运行函数时,等待时间非常慢 守则: from tkinter import * import pickle ''' Final Version ''' def delete_all(): first_listbox.delete(0, END) while len(tasks) > 0: del tasks[0] def add(event): i

所以我在使用Python和Tkinter,我在制作一个待办事项列表。除此之外,当我按ENTER键运行函数时,等待时间非常慢

守则:

from tkinter import *
import pickle

'''
Final Version
'''


def delete_all():
    first_listbox.delete(0, END)
    while len(tasks) > 0:
        del tasks[0]

def add(event):
    if entry.get().strip() == '':
        return None
    first_listbox.insert(END, entry.get())
    tasks.append(entry.get())
    entry.delete(0, END)


def delete():
    selection = first_listbox.curselection()
    first_listbox.delete(selection)
    tasks.remove(entry.get())

root = Tk()

frame = Frame(root, bg='LightBlue')
frame.grid(row=0, column=0, sticky=W, rowspan=10, columnspan=10)


frame.bind('<Enter>', add)

root.geometry('400x400')
root.title('Bad to-do list')
root.configure(bg='LightBlue')

first_listbox = Listbox(frame, width=50, selectmode = BROWSE)
first_listbox.grid(row=0, column=0, rowspan = 5, sticky=W)

entry = Entry(frame, width=50)
entry.grid(row=5, column=0, sticky=W, columnspan=2)

#submit_button = Button(frame, text='Insert', command=add)<-- Old Code Before Binding Enter
#submit_button.grid(row=5, column=1, sticky=W) <-- Old Code Before Binding Enter

delete_button = Button(frame, text='Done', command=delete)
delete_button.grid(row=0, column=1, sticky=W)

delete_all_button = Button(frame, text='Delete All', command=delete_all)
delete_all_button.grid(row=1, column=1, sticky=W, columnspan=2)



pickle_out = open('to-do-example.pickle', 'rb')
tasks = pickle.load(pickle_out)
pickle_out.close()
for item in tasks:
    first_listbox.insert(0, item)




root.mainloop()


pickle_out = open('to-do-example.pickle', 'wb')
pickle.dump(tasks, pickle_out)
pickle_out.close()
从tkinter导入*
进口泡菜
'''
最终版本
'''
def delete_all():
第一个列表框。删除(0,结束)
而len(任务)>0:
删除任务[0]
def添加(事件):
如果entry.get().strip()='':
一无所获
第一个\u listbox.insert(END,entry.get())
tasks.append(entry.get())
条目。删除(0,结束)
def delete():
selection=first_listbox.curselection()
第一个列表框。删除(选择)
tasks.remove(entry.get())
root=Tk()
frame=frame(根,bg='LightBlue')
frame.grid(行=0,列=0,粘滞=W,行span=10,列span=10)
frame.bind(“”,添加)
根几何体('400x400')
root.title('Bad to-do list')
root.configure(bg='LightBlue')
第一个列表框=列表框(框架,宽度=50,选择模式=浏览)
first_listbox.grid(行=0,列=0,行跨度=5,粘性=W)
入口=入口(框架,宽度=50)
entry.grid(行=5,列=0,粘滞=W,列跨度=2)

#提交按钮=按钮(框架,text='Insert',command=add)取自jasonharper

<Enter> 

每当鼠标进入小部件时

<Return>


是实际的输入按钮

是鼠标光标进入小部件的事件<代码>
是按下键盘上的Enter键的事件。你太棒了!