2015-07-30 2 views
1

Я пытаюсь сделать чат с Tkinter, но для отправки текста я хочу нажать клавишу возврата и не нажимать на кнопку. Когда Ï запустите этот код, я могу написать в разделе «Ввод», но когда я нажимаю клавишу «Возврат», ничего не добавляет. Спасибо за вашу помощь. (простите за плохой английский)Python chat box whith Tkinter

from tkinter import * 


window = Tk() 


input_user = StringVar() 
input_field = Entry(window, text=input_user) 
input_field.pack() 

def Enter_pressed(event): 
    """Took the current string in the Entry field.""" 
    input_get = input_field.get() 
    print(input_get) 



frame = Frame(window, width=100, height=100) 
frame.bind("<Return>", Enter_pressed) 
frame.pack() 


window.mainloop() 
+0

Что сказал Джеймс Кент. Вы также можете очистить текст после нажатия '', поэтому поместите 'input_user.set ('')' после вызова 'print' в вашей функции обратного вызова. –

ответ

4

вы привязки к неправильному виджет, при нажатии на клавишу возврата, посылается событие въездной виджета не фрейм, поэтому изменить

frame.bind("<Return>", Enter_pressed) 

в :

input_field.bind("<Return>", Enter_pressed) 

и если вы хотите, чтобы другие привязок от стрельбы вы можете добавить

return "break" 

до конца вашей функции

+0

Это работа :) Большое спасибо Джеймсу за полезный и быстрый ответ. –

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