首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何仅在文本框内才能将.bind Enterkey <Return>转到按钮?

如何仅在文本框内才能将.bind Enterkey <Return>转到按钮?
EN

Stack Overflow用户
提问于 2017-03-27 15:20:15
回答 1查看 56关注 0票数 1

我有一个笔记提取程序,目前,我可以键入一个关键字在文本框-1,并点击回车,以使我的笔记显示在文本框-2。

唯一能找到如何将Enter绑定到按钮的方法是让它始终绑定到该按钮。或者我可以将Enter绑定到函数。如果我目前在文本框-1中,我宁愿将它绑定到按钮/函数。

我甚至不知道这是否可能,因为我找不到任何类似于我的需要的参考资料。

目前,我的Enter键绑定如下:

代码语言:javascript
复制
root.bind('<Return>', kw_entry)

当我按回车时,这会调用函数kw_entry。

代码语言:javascript
复制
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中的所有内容。

谁能给我指明正确的方向?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-03-27 17:14:55

如果只希望在焦点集中在特定小部件时应用绑定,则将绑定放在该小部件上。

在下面的示例中,如果您在文本小部件中单击“返回”,那么控制台上将打印一条消息。如果您在条目小部件中,则不会发生这种情况。

代码语言:javascript
复制
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()
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43050351

复制
相关文章

相似问题

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