Skip to main content
 首页 » 编程设计

python之wxPython TextCtrl断言错误: wx. wxEVT_COMMAND_TEXT_ENTER不是PyEventBinder实例

2025年05月04日9birdshome

试图让 wxPython TextCtrl 对 ENTER 作出 react ,我得到一个断言错误:

self.fileNameInput = wx.TextCtrl (self, style=wx.TE_PROCESS_ENTER) 
self.fileNameInput.Bind (wx.wxEVT_COMMAND_TEXT_ENTER, self.onRename) 

以 Bind 中的断言错误终止:

assert isinstance(event, wx.PyEventBinder) 
AssertionError 

难怪 wx.wxEVT_COMMAND_TEXT_ENTER 不是实例,而是数字。

我读到一条关于 Python 2 和 3 之间事件变化的评论——我混合了库的版本吗?

请您参考如下方法:

你是说 wx.EVT_TEXT_ENTER 吗?

>>> import wx 
>>> wx.wxEVT_COMMAND_TEXT_ENTER 
10165 
>>> wx.EVT_TEXT_ENTER 
<wx._core.PyEventBinder object at 0x000000000321C8D0> 

例子:

import wx 
 
class MyWindow(wx.Frame): 
    def __init__(self): 
        wx.Frame.__init__(self, None) 
        self.fileNameInput = wx.TextCtrl (self, style=wx.TE_PROCESS_ENTER) 
        self.fileNameInput.Bind(wx.EVT_TEXT_ENTER, self.onRename) 
    def onRename(self, e): 
        print('ENTER') 
 
app =wx.PySimpleApp() 
win = MyWindow() 
win.Show() 
app.MainLoop()