【问题标题】:wxPython - RichTextCtrl Event HandlingwxPython - RichTextCtrl 事件处理
【发布时间】:2015-05-06 00:28:28
【问题描述】:

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

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

这里是事件处理程序:

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

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

【问题讨论】:

  • 我能够通过将给定的第一行更改为 self.textArea.Bind( wx.EVT_KEY_UP, self.syntaxColoring_C, self.textArea ) 来解决问题,尽管我不确定它是否完全正确。

标签: python wxpython richtextctrl


【解决方案1】:

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

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

引用This link

您会注意到我在结尾处也调用了“event.Skip”。如果你不调用 Skip,那么 key 会“吃掉”,不会有对应的 char 事件。这在按钮上无关紧要,但您可能会关心文本控件,因为 char 事件是捕获大小写、重音符号、变音符号等的正确方法。

【讨论】:

    猜你喜欢
    • 2011-06-25
    • 1970-01-01
    • 2021-11-15
    • 1970-01-01
    • 1970-01-01
    • 2014-03-31
    • 1970-01-01
    • 1970-01-01
    • 2010-11-06
    相关资源
    最近更新 更多