【发布时间】:2013-05-01 20:11:39
【问题描述】:
#!/usr/bin/python
import MainPanel
import wx
########################################################################
class OtherFrame(wx.Frame):##open PDB frame
""""""
#----------------------------------------------------------------------
def __init__(self):
"""Constructor"""
wx.Frame.__init__(self, None, wx.ID_ANY, "Secondary Frame")
panel = wx.Panel(self)##create panel
chain = wx.Button(panel, label = "OK", pos=(100,80),size=(53,25))##button create
self.Bind(wx.EVT_BUTTON,self.getchain,chain)##bind event to button go to getchain method
def getchain(self,event):
global flag
flag = 1
import OtherFrame
#######
class MainPanel(wx.Panel):##main frame
""""""
#----------------------------------------------------------------------
def __init__(self, parent, size = (5000,5000)):
"""Constructor"""
wx.Panel.__init__(self, parent=parent, size = (5000,5000))
self.frame = parent
Publisher().subscribe(self.showFrame, ("show.mainframe"))
def showFrame(self, msg):
#------------------------------------------------------------------
def createfigure():
OtherF = OtherFrame.OtherFrame()
OtherF.getchain()
print flag
首先,由于代码超过 1000 行,我大大缩短了代码。
我想要做的是获取在getchain 中声明的变量并在def createfigure 中使用它们。他们来自不同的阶层。
目前我收到错误getchain() takes exactly 2 arguments (1 given)
有人可以告诉我哪里出错了,以及如何获取我在def getchain(self,event) 中使用的变量并在def createfigure 中使用它们
【问题讨论】:
-
您的缩进看起来需要一点帮助;我会自己更正它,但如果你的原始代码是这样的,它也需要在那里更正。此外,您的问题似乎是您没有将
event传递给您的OtherF.getchain()电话。您是在问如何访问该event?