2015-05-06 2 views
0

В целях тестирования я пытаюсь напечатать на консоли все, что я пишу в RichTextCtrl. Однако он не работает. Вот так, как я написал привязки для RichTextCtrl, называется TEXTAREA:wxPython - RichTextCtrl Обработка событий

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

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

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

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

+0

Я был в состоянии решить эту проблему, чейнинга первую заданную строку в 'self.textArea.Bind (wx.EVT_KEY_UP, self.syntaxColoring_C, self.textArea)', хотя я не уверен, что это совершенно правильно , –

ответ

1

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

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

Цитируя This link,

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

+0

Спасибо за ваш ответ! –