wxPython - RichTextCtrl Обработка событий

В целях тестирования я пытаюсь напечатать в консоли все, что я пишу в RichTextCtrl. Тем не менее, это не работает. Вот как я написал привязку для RichTextCtrl, которая называется textArea:

self.textArea.Bind( wx.EVT_KEY_DOWN, self.syntaxColoring_C )

А вот обработчик события:

def syntaxColoring_C( self, event ):
    print self.textArea.GetValue()

Однако, когда я что-то печатаю, в консоли печатается только пустая строка, и в RichTextCtrl ничего не появляется. Что я делаю неправильно? Заранее спасибо.

1 ответ

Решение

Это можно исправить, добавив event.Skip() в вашей обработке событий.

def syntaxColoring_C(self,event):
    print self.textArea.GetValue()
    event.Skip()

Цитирование из этой ссылки,

Вы заметите, что я также называю "event.Skip" в конце. Если вы не позвоните Skip, то ключ будет "съеден", и соответствующее событие char не будет. Это не имеет значения для кнопки, но вы можете позаботиться о текстовом элементе управления, так как события char - это правильный способ отлавливать прописные и строчные буквы, ударения, умляуты и тому подобное.

Другие вопросы по тегам