试图让 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()
