【问题标题】:Getting values by pressing 'Enter' key rather than clicking a button通过按“Enter”键而不是单击按钮来获取值
【发布时间】:2015-02-02 16:16:35
【问题描述】:

我在 python(Tkinter) 中创建了一个程序,它将用户名和密码作为输入,以及一个按钮,当按下该按钮时,将通过一个检查用户名和密码并进一步运行程序的函数。我想要这样,而不是单击按钮,用户按下“Enter”键,然后执行按钮的功能。请帮忙。

【问题讨论】:

标签: python tkinter


【解决方案1】:

您可以使用某种方法在Entry 小部件上绑定<Return> 事件(这将执行您想要的操作):

# binding <Return> event

import tkinter as tk
import tkinter.messagebox as msg

def show(event=None): # handler
    msg.showinfo('name', 'Your name is ' + inp.get())

m = tk.Tk()

prompt = tk.Label(m, text='Name: ')
prompt.pack(fill='x', side='left')

inp = tk.Entry(m)
inp.bind('<Return>', show) # binding the Return event with an handler
inp.pack(fill='x', side='left')

ok = tk.Button(m, text='GO', command=show)
ok.pack(fill='x', side='left')

m.mainloop()

如果您想了解更多关于 eventsbindings 的信息,请参阅此effbot's page,这很容易理解。

【讨论】:

    【解决方案2】:

    我相信您会希望将密钥绑定到您的处理程序:frame.bind('&lt;Return&gt;', some_handler)

    【讨论】:

    • 您可能不想绑定到框架,而是绑定到条目小部件。
    【解决方案3】:

    对我来说,对函数的正常绑定不起作用。可能是因为我在一个类中使用它,所以我使用了 Lambda 函数并且它有效。代码如下:

    inp.bind('', lambda _: show())

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-12
      • 1970-01-01
      • 2015-12-11
      • 2023-02-09
      • 2011-05-25
      • 2016-10-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多