Am I not understanding something about lambdas? Or GetValue()
the variable that I am trying to pass is empty. Is it best to just create a global palletNumberText
for this?
In createWidgets()
I am binding an EVT_TEXT
so that when text is entered into the TextCtrl
it should call onPalletNumberText(event, variable_here)
The following line is where I am having difficulties:
palletNumberText.Bind(wx.EVT_TEXT, lambda event, temp_str=palletNumberText.GetValue(): self.onPalletNumberText( event, temp_str ))
Inside this Code Snippet:
class ClassName(wx.Frame):
def __init__(self, parent, title):
wx.Frame.__init__(self, parent, title=title)
self.panel = wx.Panel(self)
self.PhotoMaxSize = 240
self.createWidgets()
self.Show()
def createWidgets(self):
.
.
.
palletNumberText = wx.TextCtrl(self.panel, size=(80,-1))
# THIS LINE
palletNumberText.Bind(wx.EVT_TEXT, lambda event, temp_str=palletNumberText.GetValue(): self.onPalletNumberText( event, temp_str ))
.
.
.
def onPalletNumberText(self, event, palletNumber):
'''
save palletNumbertTxt Value when text is entered
'''
print palletNumber
print "This is a test"
# Store Value
return
Readings that I have looked at:
- wxpython, passing data to a function in self.Bind
- http://wiki.wxpython.org/Passing%20Arguments%20to%20Callbacks
- wxpython passing information, pointers?
- How can I give variables to the event handler?
- Is it possible to pass arguments into event bindings?
- http://wxpython-users.1045709.n5.nabble.com/GetValue-from-TextCtrl-by-hitting-a-button-td3203210.html
- Getting String from A TextCtrl Box
However my results:
Thanks.