【发布时间】:2014-05-23 22:33:24
【问题描述】:
我的代码:
对于范围内的 i (0,3):
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() 函数运行。
我想打开对话框,当我按下“选择按钮”时,OnSelect() 运行。
我该怎么做,为什么会触发函数?
【问题讨论】:
-
当你绑定到 OnSelect 时,你有 (),它调用了方法然后绑定到 Onselect 的结果,当你绑定到方法或函数时,你不应该使用 (),所以绑定是到对象本身。
-
太棒了!谢谢,那解决了。如此简单的解决方案:-)
-
添加了我的评论作为答案,因为它解决了您的问题。
标签: python events python-2.7 wxpython wxwidgets