wxPython - RichTextCtrl 事件处理

wxPython - RichTextCtrl Event Handling

出于测试目的,我尝试在控制台中打印我在 RichTextCtrl 中编写的所有内容。但是,它不起作用。这是我为 RichTextCtrl 编写绑定的方式,称为 textArea:

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

这是事件处理程序:

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

但是,当我输入内容时,控制台中只打印了一个空行,而 RichTextCtrl 中没有显示任何内容。我究竟做错了什么?提前致谢。

这可以通过在您的事件处理中添加 event.Skip() 来纠正。

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

引用自This link

You’ll notice that I also call “event.Skip” at the end. Iif you don’t call Skip, then the key will “eaten” and there won’t be a corresponding char event. This won’t matter on a button, but you might care in a text control as char events are the proper way of catching upper and lower case, accents, umlauts and the like.