首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在Python Tkinter中输入键绑定的响应非常慢

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

Stack Overflow用户
提问于 2018-08-05 07:01:21
回答 1查看 618关注 0票数 0

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

代码:

代码语言:javascript
复制
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()

当我运行它时,它工作得很好

但是,在按ENTER键之后,添加新任务的等待时间非常慢。但是,奇怪的是,如果我使用鼠标左键而不是Enter键来绑定部分,它可以很好地立即响应吗?

有人能解释一下吗。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-05 09:08:31

取自jasonharper。

代码语言:javascript
复制
<Enter> 

是鼠标进入小部件的时间。

代码语言:javascript
复制
<Return>

是实际的enter按钮

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51690173

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档