绑定时wxpython textctrl不写

时间:2011-08-17 18:49:50

标签: wxpython bind textctrl

我一直在研究一个简单的textctrl项目,以便更多地了解wxpython,我遇到了一个小路障。我正在制作一个简单的代码编辑器,我目前正致力于语法高亮。一切正常,除非因为我的textctrl绑定到一个事件:

self.status_area.Bind(wx.EVT_CHAR, self.onKeyPress)

我在该定义中有代码:

def onKeyPress (self, event):
    Line = self.status_area.GetValue()

它将不再允许用户输入任何字母。我可以删除并创建一个没有任何问题的新行,但如果我输入“hello”,则不会显示任何内容。在调试我的代码时,我知道它运行在onKeyPress()和里面的代码,如果我将代码更改为:

def onKeyPress (self, event):
    event.Skip()

它会正常工作。我试图将正常的文本编辑器工作重新编码到onKeyPress()中,但它开始变得太笨重了。任何有关此事的帮助将不胜感激。

2 个答案:

答案 0 :(得分:2)

尝试EVT_TEXT而不是EVT_CHAR。在我的解决方案中,我在event.Skip()

之后添加了它

答案 1 :(得分:2)

创建textctrl

self.text_ctrl = wx.TextCtrl(self.panel_1, -1, "some thing", style=wx.TE_MULTILINE | wx.TE_RICH2 )

绑定

self.Bind(wx.EVT_TEXT, self.ON_Write, self.text_ctrl)

现在定义:

def ON_Write(self, event):
   line = self.text_ctrl.Value