我在尝试在单独的类中获取函数时遇到了困难。我有一个带有一些函数的主类,其中一个函数被重置:
class GUI(wx.Frame):
[GUI STUFF HERE]
def reset(self):
self.data = [0]
在该类中,我也在子例程之前启动另一个类:
self.controlPanel = controlPanel(self.panel)
它启动另一个类,它是一个带按钮的静态框。在该类中,我有一个绑定到按钮事件的函数:
def reset(self, event):
GUI.reset()
其中函数“reset”在主GUI类中。当我尝试在主类中调用reset时出现错误,但我可以反过来这样做。为什么这样,我该如何解决?我想要子类中的按钮事件来调用父类中的函数。
提前致谢。
答案 0 :(得分:2)
“GUI”未在“controlPanel”中定义,您要调用“GUI”实例的方法。
一种方法是在按钮处理程序中执行以下操作:
self.GetParent().reset()
根据您的应用程序的复杂程度,如果您在GUI和controlPanel之间插入另一个图层,它将不再起作用,这将失控。
您可能希望使用'wx.lib.pubsub'并在您的controlPanel中使用'pub.sendMessage'并在您的GUI中使用'pub.subscribe'。