我的問題是:wxPython的返回值來調用框架
我設計了一個對象的建設嚮導被添加到我的程序的調用框架對象的列表。在嚮導的結尾處,我想將新創建的對象傳遞迴調用框架以插入到列表中。爲了一個抽象的基礎上模擬這一基本功能我已經建造以下,按比例縮小的應用程序:
mainframe.py
import wx
import wiz_test
class MainFrame(wx.Frame):
def __init__(self):
wx.Frame.__init__(self,None,title="Main")
panel = wx.Panel(self)
callButton = wx.Button(panel, label = "Call Wizard")
callButton.Bind(wx.EVT_BUTTON,self.launchWizard)
self.Show()
def launchWizard(self,event):
wiz = wiz_test.WizObj(self)
a = 0
if wiz == wx.wizard.EVT_WIZARD_FINISHED:
a = wiz.answer
print a
if __name__ == '__main__':
app = wx.App(False)
frame = MainFrame()
app.MainLoop()
wiz_test.py
import wx
import wx.wizard as wiz
class WizPage(wiz.WizardPageSimple):
def __init__(self, parent):
self.answer = 3
wiz.WizardPageSimple.__init__(self, parent)
sizer = wx.BoxSizer(wx.VERTICAL)
self.SetSizer(sizer)
title = wx.StaticText(self, -1, "Wizard Page")
title.SetFont(wx.Font(18, wx.SWISS, wx.NORMAL, wx.BOLD))
sizer.Add(title, 0, wx.ALIGN_CENTRE|wx.ALL, 5)
sizer.Add(wx.StaticLine(self, -1), 0, wx.EXPAND|wx.ALL, 5)
class WizObj(object):
def __init__(self,parent):
wizard = wx.wizard.Wizard(None, -1, "Simple Wizard")
page1 = WizPage(wizard)
wizard.FitToPage(page1)
wizard.RunWizard(page1)
wizard.Destroy()
if __name__ == "__main__":
app = wx.App(False)
main()
app.MainLoop()
在這個最終目標一個小例子是當wx.wizard.EVT_WIZARD_FINISHED事件被觸發時,讓MainFrame實例輸出從WizObj實例的.answer成員變量派生的值'3'。然而,由於當前代碼只返回'0',因此顯然不適用於這一點。我以正確的方式接近這個嗎?我應該綁定EVT_WIZARD_FINISHED事件嗎?如果是,我將如何從Mainframe訪問它?