我能够成功监听 TextCtrl 上的 EVT_CHAR 事件,但是当我将 TextCtrl 更改为使用 TE_MULTILINE 时,绑定(bind)似乎停止工作。
self.input = wx.TextCtrl(self, style=wx.TE_MULTILINE)
self.input.Bind(wx.EVT_CHAR, self.OnChar)
我正在使用 3.0.3.dev1820+49a8884 osx-cocoa (phoenix)。
如何在多行 TextCtrl 上监听 EVT_CHAR 事件?
最佳答案
问题中展示的代码应该可以工作,如果您使用的不是Mac,则可以。事实上,它在 Mac 上不起作用是一个错误 - 我在 https://github.com/wxWidgets/Phoenix/issues/804 报告了它。并且得到了维护者的确认。
该错误将在 wxPython 4.1 中修复,但在撰写本文时该版本尚未发布。
如果您必须使用没有修复程序的 wxPython 版本,那么根据您的目标,它可能足以绑定(bind)到 wx.EVT_TEXT
或相反,尽管两者的行为与 wx.EVT_CHAR
完全相同。
关于python - wxPython:如何在多行 TextCtrl 上监听 EVT_CHAR 事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31620085/