簡體   English   中英

在Python Tkinter中輸入鍵綁定的響應非常慢

[英]Very Slow Response To Enter Key Binding in Python 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):
    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鍵,它可以立即響應正常嗎?

有人可以解釋一下。

取自jasonharper ...

<Enter> 

每當鼠標進入小部件時

<Return>

是實際的輸入按鈕

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM