有没有办法将参数传递给事件函数?当我按下提交按钮时,我收到以下错误:
NameError:全局名称'文件名'未定义
以下是完整错误:
赛道(最近一次呼叫最后一次): 文件" C:\ Users \ sbing \ OneDrive \ Documents \ CNM \ Spring2018 \ CIS1250_Python \ Labs \ Prgm11 \ geopoint.py",第60行,提交 file = open(filename.GetValue(),' r') NameError:全局名称'文件名'未定义
这是我的代码:
ts
答案 0 :(得分:0)
正如我的评论中所提到的,实现您想要的最简单方法是将引用更改为self.filename
但是在回答问题时,是的,您可以。
使用lambda
功能。
import wx
class TestFrame(wx.Frame):
def __init__(self, *args):
wx.Frame.__init__(self, *args)
Button = wx.Button(self, -1, "Click me")
Button.Bind(wx.EVT_BUTTON, lambda event: self.OnButton(event, flag1="Parameter", flag2="Something else"))
sizer = wx.BoxSizer(wx.VERTICAL)
sizer.Add(Button,1,0,0)
self.SetSizerAndFit(sizer)
self.Show()
def OnButton(self, event, flag1, flag2):
print ("The Button was pressed")
print ("Flag1 was set to ", flag1)
print ("Flag2 was set to ", flag2)
if __name__ == "__main__":
app = wx.App()
myframe = TestFrame(None, -1, "Button Test")
app.MainLoop()