0

我们知道 wxCallAfter 在函数之间工作:

def onButton(self, event):
     wx.CallAfter(self.functionOne)

def functionOne(self):
     print "functionOne fired!"

如何使用我的对象将使用 wx.CallAfter 的操作调用到init?我按下了一个按钮,依次更改了该init类的列表。

这是我已经取得的进展:

class LeftPanel(wx.Panel):

def __init__(self,parent, *args, **kwargs):
    wx.Panel.__init__(self,parent)       
    self.radioLabel = self.myListener(self,parent,*args, **kwargs)
    print 'Line 28 is %s' % self.radioLabel  ## Line 28 is None, looking for a list!

下面在同一面板上:

def myListener(self, message, arg2=None):
    print '378 left listener try is %s' % message
    self.radioLabel = message        
    try:
        wx.CallAfter(self.__init__)
    except TypeError:
        return

追溯:

lambda event: event.callable(*event.args, **event.kw) )
TypeError: __init__() takes at least 2 arguments (1 given)
4

1 回答 1

1

你不调用一个类,你实例化它。所以如果你需要实例化一个类,我会在一个方法中做到这一点:

def someMethod(self):
    obj = SomeClass(*args, **kwargs)

然后你可以用 wx.CallAfter 调用该方法:

wx.CallAfter(someMethod)
于 2013-10-30T15:14:00.950 回答