我的代码:
表示范围(0,3)中的i:
self.thermopage.selectcompbutt.variables[0][0].Bind(event=wx.EVT_BUTTON,
handler =lambda event,row=0,page=0:self.OnButtonClick(event,row,page),
id = self.thermopage.selectcompbutt.variables[0][0].GetId())
def OnButtonClick(self,event,ro,whatpage):
self.dialogframe= wx.Frame(self, size=(100,140))
self.dialogpanel=wx.Panel(self.dialogframe)
self.dialogsizer = wx.BoxSizer(wx.VERTICAL)
self.text = wx.StaticText(self.dialogpanel,id=wx.NewId() ,
label = "Available COM-Ports")
self.dropdown = wx.ComboBox(self.dialogpanel, id=wx.NewId(), choices= strings,
size=(100,10))
self.chosebutton = wx.Button(self.dialogpanel,id = wx.NewId(), label = "Select",
size= (100,15))
self.dialogsizer.Add(self.chosebutton,1, wx.LEFT)
self.dialogpanel.SetSizerAndFit(self.dialogsizer)
self.dialogframe.Show()
print self.chosebutton.GetId()
self.chosebutton.Bind(wx.EVT_BUTTON, handler=self.OnSelect(event))
def OnSelect(self,evt):
#do something
问题在于当我按下将打开对话框的按钮(选择按钮所在的位置)时,OnSelect()函数会运行。
我想打开对话框,当我按下“choosebutton”时,OnSelect()会运行。
我该怎么做?为什么函数会触发?
答案 0 :(得分:0)
当你绑定到OnSelect时,你有()调用了该方法然后绑定到Onselect的结果,当你绑定到一个方法或函数时,你不应该使用()所以绑定是对象本身。