gpt4 book ai didi

python - 仅当在文本框中时,如何将 Enterkey 绑定(bind)到按钮?

转载 作者:太空宇宙 更新时间:2023-11-03 15:27:12 24 4
gpt4 key购买 nike

我有一个笔记程序,目前我可以在 TextBox-1 中输入关键字,然后按 Enter 键以将我的笔记显示在 TextBox-2 中。

我能找到如何将 Enter 绑定(bind)到按钮的唯一方法是让它始终绑定(bind)到该按钮。或者我可以将 Enter 绑定(bind)到一个函数。我宁愿仅当我当前位于 textBox-1 内时才将其绑定(bind)到按钮/功能。

我什至不知道这是否可能,因为我找不到任何与我的需求类似的引用。

目前我的 Enter 键绑定(bind)如下:

root.bind('<Return>', kw_entry)

当我按 Enter 键时,这会调用函数 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。这是一个问题,因为它会重置 TextBox-2 中的所有内容。

有人能指出我正确的方向吗?

最佳答案

如果您只想在焦点位于特定小部件上时应用绑定(bind),请将绑定(bind)放在该小部件上。

在以下示例中,如果您在文本小部件中按回车键,则控制台上将打印一条消息。如果您在条目小部件中,则不会发生这种情况。

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()

关于python - 仅当在文本框中时,如何将 Enterkey <Return> 绑定(bind)到按钮?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43050351/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com