wxpython textctrl не пишет при привязке - PullRequest
1 голос
/ 17 августа 2011

Я работал над простым проектом textctrl, чтобы поближе познакомиться с wxpython, и я столкнулся с небольшим блокпостом. Я делаю простой редактор кода, и в настоящее время я работаю над подсветкой синтаксиса. Все работает хорошо, за исключением того, что мой textctrl привязан к событию:

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

и у меня есть код в этом определении:

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

Это больше не позволит пользователю печатать любые буквы. Я могу удалить и создать новую строку без каких-либо проблем, но если я наберу "привет", ничего не появится. При отладке моего кода я знаю, что он запускается через onKeyPress () и код внутри, и если я изменю код на:

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

все будет работать нормально. Я попытался перекодировать обычную работу текстового редактора в onKeyPress (), но он стал слишком громоздким. Любая помощь по этому вопросу будет принята с благодарностью.

Ответы [ 2 ]

2 голосов
/ 03 апреля 2013

для создания 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
2 голосов
/ 18 августа 2011

Попробуйте EVT_TEXT вместо EVT_CHAR.В моем решении я добавил его ПОСЛЕ event.Skip()

...