我有一个笔记提取程序,目前,我可以键入一个关键字在文本框-1,并点击回车,以使我的笔记显示在文本框-2。
唯一能找到如何将Enter绑定到按钮的方法是让它始终绑定到该按钮。或者我可以将Enter绑定到函数。如果我目前在文本框-1中,我宁愿将它绑定到按钮/函数。
我甚至不知道这是否可能,因为我找不到任何类似于我的需要的参考资料。
目前,我的Enter键绑定如下:
root.bind('<Return>', kw_entry)当我按回车时,这会调用函数kw_entry。
def kw_entry(event=None):
e1Current = keywordEntry.get().lower()
if e1Current in notes: # e1Corrent is just the current text in TextBox-1
root.text.delete(1.0, END)
root.text.insert(tkinter.END, notes[e1Current])
root.text.see(tkinter.END)
else:
root.text.delete(1.0, END)
root.text.insert(tkinter.END, "Not a Keyword")
root.text.see(tkinter.END)在大多数情况下,这很好,但是我也想编辑正在显示的注释,问题是在TextBox-2中我不能点击Enter,因为Enter必然会调用函数kw_entry。这是一个问题,因为它重置了文本框-2中的所有内容。
谁能给我指明正确的方向?
发布于 2017-03-27 17:14:55
如果只希望在焦点集中在特定小部件时应用绑定,则将绑定放在该小部件上。
在下面的示例中,如果您在文本小部件中单击“返回”,那么控制台上将打印一条消息。如果您在条目小部件中,则不会发生这种情况。
import tkinter as tk
def foo(event):
print("you pressed return")
# the following prevents the enter key from inserting
# a newline. If you remove the line, the newline will
# be entered after this function runs
return "break"
root = tk.Tk()
entry = tk.Entry(root)
text = tk.Text(root)
entry.pack(side="top", fill="x")
text.pack(side="bottom", fill="both", expand=True)
text.bind("<Return>", foo)
root.mainloop()https://stackoverflow.com/questions/43050351
复制相似问题