我有一个名为OnShowCustomDialog的函数,我想用2种不同的方法来调用,一种是用鼠标单击按钮,另一种是在一段时间后(如果未发生单击的话)
由于参数存在差异,我可以使用相同的代码来执行一项或多项操作,但是,如果我从函数参数中删除“事件”,则单击不起作用,并且如果我保留了它,则基本上无法执行,CallLater将无法使用
我可以创建一个新功能来解决其他情况,但是我敢肯定有一个简单的解决方案我找不到
import wx
class MyFrame(wx.Frame):
def __init__(self, parent, id, title):
wx.Frame.__init__(self, parent, id, title, size=(300,300))
panel = wx.Panel(self, -1)
wx.Button(panel, 1, 'Show Custom Dialog', (100,100))
self.Bind (wx.EVT_BUTTON, self.OnShowCustomDialog, id=1)
wx.CallLater(1000, self.OnShowCustomDialog)
def OnShowCustomDialog(self, event):
dia = MyDialog(self, -1, 'buttons')
dia.Show()
wx.CallLater(4000, dia.Destroy)
class MyApp(wx.App):
def OnInit(self):
frame = MyFrame(None, -1, 'customdialog1.py')
frame.Show(True)
frame.Centre()
return True
app = MyApp(0)
app.MainLoop()
答案 0 :(得分:2)
您将事件设置为可选,然后它应可同时用于两个呼叫。
def OnShowCustomDialog(self, event=None):
dia = MyDialog(self, -1, 'buttons')
dia.Show()
wx.CallLater(4000, dia.Destroy)
迈克尔