gpt4 book ai didi

python - wxpython 将变量传递给回调事件。 lambda 岛

转载 作者:行者123 更新时间:2023-11-28 21:55:18 26 4
gpt4 key购买 nike

我是不是对 lambda 不了解?或者 GetValue() 我试图传递的变量是空的。最好为此创建一个 global palletNumberText 吗?在 createWidgets() 中,我绑定(bind)了一个 EVT_TEXT,这样当在 TextCtrl 中输入文本时,它应该调用 onPalletNumberText(event, variable_here )

下一行是我遇到困难的地方:

palletNumberText.Bind(wx.EVT_TEXT, lambda event, temp_str=palletNumberText.GetValue(): self.onPalletNumberText( event, temp_str ))

在这里面代码片段:

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

我看过的读物:

但是我的结果:

results

谢谢。

最佳答案

你的默认参数在开始时计算

lambda event, temp_str=None: self.onPalletNumberText( event, 
temp_str if temp_str is not None else palletNumberText.GetValue() )

我觉得可以

但你真正想要的可能更像

lambda event, txt_instance=palletNumberText: self.onPalletNumberText( event, txt_instance.GetValue() )  

关于python - wxpython 将变量传递给回调事件。 lambda 岛,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22872197/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com