Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » GUI
  • » Некорректная работа bind в Tkinter.Text [RSS Feed]

#1 Ноя. 7, 2015 14:50:31

Ryo
Зарегистрирован: 2015-11-07
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

Некорректная работа bind в Tkinter.Text

Или, наоборот, корректная, но мне не подходит.

from Tkinter import *
root = Tk()
def get_text(event):
    print textbox.get(1.0, END)
    textbox.delete(1.0, END)
textbox = Text(root, width=25, height=3)
textbox.bind('<Return>', get_text)
textbox.pack()
root.mainloop()

После ввода текста и нажатия “Ентера” нужный текст захватывается, поле очищается, после чего в нем остается лишний ‘\n’ (я так понимаю, это “ентер” после нашей обработки события таки вводится). Он там явно лишний.
Как бы от него избавиться?

Офлайн

#2 Ноя. 7, 2015 15:22:30

4kpt_III
Зарегистрирован: 2014-12-22
Сообщения: 999
Репутация: +  39  -
Профиль   Отправить e-mail  

Некорректная работа bind в Tkinter.Text

KeyPress - KeyRelease, посмотрите в документации.

Офлайн

#3 Ноя. 7, 2015 21:05:34

Ryo
Зарегистрирован: 2015-11-07
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

Некорректная работа bind в Tkinter.Text

Благодарю.

textbox.bind('<KeyRelease-Return>', get_text)
решает все проблемы.
Что правда, теперь этот “ентер” в сообщении откуда-то лишний берется, но там его обрезать куда проще.

Офлайн

  • Начало
  • » GUI
  • » Некорректная работа bind в Tkinter.Text[RSS Feed]

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version