wxpythontextctrl不';装订时不要写字

wxpythontextctrl不';装订时不要写字,wxpython,bind,textctrl,Wxpython,Bind,Textctrl,我一直在做一个简单的textctrl项目,以便更熟悉wxpython,我遇到了一个小障碍。我正在制作一个简单的代码编辑器,目前正在进行语法高亮显示。一切正常,只是因为我已将textctrl绑定到事件: self.status_area.Bind(wx.EVT_CHAR, self.onKeyPress) 我在定义中有代码: def onKeyPress (self, event): Line = self.status_area.GetValue() def ON_Write(sel

我一直在做一个简单的textctrl项目,以便更熟悉wxpython,我遇到了一个小障碍。我正在制作一个简单的代码编辑器,目前正在进行语法高亮显示。一切正常,只是因为我已将textctrl绑定到事件:

self.status_area.Bind(wx.EVT_CHAR, self.onKeyPress)
我在定义中有代码:

def onKeyPress (self, event):
    Line = self.status_area.GetValue()
def ON_Write(self, event):
   line = self.text_ctrl.Value
它将不再允许用户键入任何字母。我可以删除并创建一个新行,没有任何问题,但如果我键入“hello”,将不会显示任何内容。调试代码时,我知道它是通过onKeyPress()和其中的代码运行的,如果我将代码更改为:

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

它会很好用的。我试图将正常的文本编辑器工作重新编码到onKeyPress()中,但它开始变得太庞大。在此问题上的任何帮助都将不胜感激。

尝试
EVT\u TEXT
而不是
EVT\u CHAR
。在我的解决方案中,我在
event.Skip()之后添加了它
尝试
EVT\u TEXT
而不是
EVT\u CHAR
。在我的解决方案中,我在
event.Skip()之后添加了它以创建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 onKeyPress (self, event):
    Line = self.status_area.GetValue()
def ON_Write(self, event):
   line = self.text_ctrl.Value
创建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 onKeyPress (self, event):
    Line = self.status_area.GetValue()
def ON_Write(self, event):
   line = self.text_ctrl.Value

这解决了我的问题,非常感谢。这是一个非常好的论坛。不过我不需要添加event.skip()。如果解决了您的问题,请不要忘记接受答案。您可以通过单击答案旁边的复选标记来完成此操作。是什么解决了问题,我什么也看不到:(这解决了我的问题,非常感谢。这是一个非常好的论坛。我不需要添加事件。跳过()尽管如此。如果答案解决了您的问题,请不要忘记接受答案。您可以通过单击答案旁边的复选标记来完成此操作。解决问题的方法,我看不到任何内容:(在事件处理程序中调用
event.Skip()
,与此无关,只要您在必要时调用它即可。调用
event.Skip()与此无关)
在事件处理程序中,只要您在必要时调用它。