当前位置: 首页 > 知识库问答 >
问题:

如何生成标签键,即使在TKinter(python)中按下回车键?

燕鸿波
2023-03-14

我试图了解如何在tkinter/python中生成TAB键事件。

我在tkinter中有一个用于返回键的键绑定。

am_field_txt.bind('<Return>', next_focus)

我不想调用函数(next_focus),只想生成一个TAB事件,这样,当按下TAB键时,正在使用的条目的现有验证将能够使用“focusout”运行。(我已经设置了带有验证的文本条目,以便在validate=focusout上执行检查并处理所有事情;但是我希望它能够处理这样一种情况,即用户可以按return键而不是“focusout”条件(选项卡或单击文本框)。我真的不想使用validate=key,因为只要按下一个键,这个例程就会运行(加上它已经被设置好并正在为focusout工作)。

有没有一种简单的方法来绑定条目的返回键,以便发生TAB事件?

我在网上找到了TCL的留档,上面写着:

bind .w <Return> {focus [tk_focusNext %W]}
bind .w <Return> {event generate %W <Tab>}

最后一行是我想做的——除了Python的格式/语法

共有2个答案

狄元魁
2023-03-14

您可以在Python绑定中使用TCL代码作为参数

import tkinter as tk

root = tk.Tk()

e1 = tk.Entry(root)
e1.pack()
e2 = tk.Entry(root)
e2.pack()

#bind .w <Return> {event generate %W <Tab>}
e1.bind('<Return>', 'event generate %W <Tab>')
e2.bind('<Return>', 'event generate %W <Tab>')

root.mainloop()

还有事件\u generate()

e2.bind('<Return>', lambda x:root.event_generate('<Tab>'))
壤驷向明
2023-03-14

可以说,最简单的方法是精确绑定底层tk小部件的功能,方法是向tk请求绑定到tab键的函数并将其分配给enter键,如下所示:

am_field_txt.bind('<Return>', root.bind_all("<Tab>"))

这将导致回车键的行为与制表符键完全相同,包括设置焦点和选择小部件中的文本。

如果不想选择下一个小部件中的文本,可以创建next\u focus函数,如下所示:

def next_focus(event):
    event.widget.tk_focusNext().focus_set()
 类似资料:
  • 从我以前的帖子中,我了解到getchar()只有在我们按Enter键时才会完成。让我们考虑这个代码: 我希望它是这样运行的:我按下某个键1,然后按Enter,然后按下键2,然后按Enter,然后按下键3,然后按下键4,最后按下键5,程序现在应该终止了。这不是实际发生的情况。事情是这样的:我按下某个键1,然后按Enter,然后按下键2,然后按下键3,然后按下Enter,程序最终终止! 为什么最后两个

  • Angular material在选择时出现问题。像materiel auto complete一样,在单击按钮时无法选择值。但是它在单击按钮时工作。因此,我需要手动覆盖key事件上的key事件。怎么可能?

  • 我试图访问Tkinter中按钮的标签,当按钮被按下时。这包括返回对按下的目标按钮的引用。 目前,由于我必须输入参数,这是通过将选项绑定到函数来完成的,即。 有没有办法返回实例?我已经检查了TKDocs,它不包括。此外,我还尝试使用单独的字符串列表来获取标签。然而,它只返回列表的最后一个元素(我相信这是由于lambda函数在创建按钮实例时没有将特定元素绑定到列表。我以前使用这个列表来生成按钮列表。(

  • 问题内容: 编程新手,尤其是python和tKinter。如何创建将键“s”绑定到按钮或功能的方法?任何帮助都是极好的。 问题答案: 您需要进行两项更改: 加 到。(绑定到Frame似乎无效。) 当按下时,会被调用。由于Tkinter将发送对象,因此我们还必须将呼叫签名更改为 因此,当按下按钮时,将被设置为默认值,但是当按下按键时, 将被分配给对象。

  • 本文向大家介绍jsp中如何实现按下回车键自动提交表单,包括了jsp中如何实现按下回车键自动提交表单的使用技巧和注意事项,需要的朋友参考一下 为了省事很多时候希望可以按回车键来提交表单,要控制这些行为,可以借助JS来达到要求。 代码如下: 解决方案: 把form表单放在一个div里面 ,然后对这个div监听事件$("#id").keydown(function (){}); #*#监听回车事件 #*

  • 我用tkinter创建了一个文本框。当按下Ctrl返回时,以下代码将停止创建换行符。 但是,我还想在用户键入Ctrl-Return时调用一个函数。下面调用该函数,但随后创建一个换行: 如果交换第三行和第四行,则没有换行符,但也不会调用该函数。 有没有一种既防止换行符又调用函数的方法?