2015-02-02 4 views
0

Я создал программу в python (Tkinter), которая вводит имя пользователя и пароль в качестве ввода и кнопку, которая при нажатии проходит через функцию, которая проверяет имя пользователя и пароль и далее запускает программу. Я хочу, чтобы вместо нажатия кнопки пользователь нажимал клавишу «Ввод» и выполняет функцию кнопки. пожалуйста помоги.Получение значений нажатием клавиши «Ввод», а не нажатием кнопки

+0

http://effbot.org/tkinterbook/tkinter-events-and-bindings.htm – dm03514

ответ

0

Я считаю, что вам нужно привязать ключ к вашему обработчику: frame.bind('<Return>', some_handler).

+0

Вы, вероятно, не будет хотите привязать к фрейму, вы привязаетесь к виджету ввода. –

1

Вы можете связать <Return> событие на Entry виджет с каким-либо способом (который будет делать то, что вы хотите):

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

Если вы хотите узнать больше о события и привязок см это effbot's page, что довольно легко понять.

0

Для меня нормальное связывание с функцией не работает. Вероятно, потому что я использую его внутри класса, я использовал функцию лямбда, и это сработало. Вот код:

inp.bind ('', лямбда _: показать())

Смежные вопросы