Вы можете использовать несколько классов или выполнить задачу в одном классе.
Поскольку этот процесс выглядит последовательным, для начала может быть проще сделать все это в одном классе.
Надеюсь, вы ищете что-то вроде этого.
import wx
choices=["Withdraw Cash","Make a deposit","Check Balance"]
class Example(wx.Frame):
def __init__(self, parent, title):
super(Example, self).__init__(parent, title=title, size=(750,-1))
self.Customer_panel()
self.Show()
def Customer_panel(self):
self.panel = wx.Panel(self, -1)
sizer = wx.BoxSizer(wx.VERTICAL)
text = wx.StaticText(self.panel, label="Customer Id:")
sizer.Add(text, 0, flag=wx.ALL, border=5)
self.customer_id = wx.TextCtrl(self.panel)
sizer.Add(self.customer_id, 0, flag=wx.ALL, border=5)
next = wx.Button(self.panel, label="Login")
sizer.Add(next, 0, flag=wx.ALL, border=5)
self.panel.SetSizerAndFit(sizer)
next.Bind(wx.EVT_BUTTON, self.OnNext_1)
self.customer_id.SetFocus()
def OnNext_1(self, event):
self.CustId = self.customer_id.GetValue()
if self.CustId != "1442":
wx.MessageBox("Incorrect Customer Id","Error", wx.OK | wx.ICON_ERROR)
self.customer_id.SetValue('')
self.customer_id.SetFocus()
return
self.panel.Destroy()
self.Transaction_type_panel()
def Transaction_type_panel(self):
self.panel = wx.Panel(self, -1)
sizer = wx.BoxSizer(wx.VERTICAL)
text = wx.StaticText(self.panel, label="Customer Id: "+str(self.CustId))
sizer.Add(text, 0, flag=wx.ALL, border=5)
self.trans_type = wx.ComboBox(self.panel, -1, "Transaction type", choices=choices)
sizer.Add(self.trans_type, 0, flag=wx.ALL, border=5)
next = wx.Button(self.panel, label="Next")
sizer.Add(next, 0, flag=wx.ALL, border=5)
back = wx.Button(self.panel, label="Back")
sizer.Add(back, 0, flag=wx.ALL, border=5)
exit = wx.Button(self.panel, label="Exit")
sizer.Add(exit, 0, flag=wx.ALL, border=5)
self.panel.SetSizerAndFit(sizer)
next.Bind(wx.EVT_BUTTON, self.OnNext_2)
back.Bind(wx.EVT_BUTTON, self.OnBack_2)
exit.Bind(wx.EVT_BUTTON, self.OnExit_2)
self.trans_type.SetSelection(0)
def OnNext_2(self, event):
self.Type = self.trans_type.GetSelection()
self.panel.Destroy()
self.Transaction_panel()
def OnBack_2(self, event):
self.panel.Destroy()
self.Customer_panel()
def OnExit_2(self, event):
self.Destroy()
def Transaction_panel(self):
self.panel = wx.Panel(self, -1)
sizer = wx.BoxSizer(wx.VERTICAL)
text = wx.StaticText(self.panel, label="Customer Id: "+str(self.CustId))
sizer.Add(text, 0, flag=wx.ALL, border=5)
text2 = wx.StaticText(self.panel, label="You chose to "+choices[self.Type])
sizer.Add(text2, 0, flag=wx.ALL, border=5)
exit = wx.Button(self.panel, label="Exit")
sizer.Add(exit, 0, flag=wx.ALL, border=5)
back = wx.Button(self.panel, label="Back")
sizer.Add(back, 0, flag=wx.ALL, border=5)
self.panel.SetSizerAndFit(sizer)
exit.Bind(wx.EVT_BUTTON, self.OnExit_3)
back.Bind(wx.EVT_BUTTON, self.OnBack_3)
def OnExit_3(self, event):
self.Destroy()
def OnBack_3(self, event):
self.panel.Destroy()
self.Transaction_type_panel()
app = wx.App()
Example(None, title='Sequential Panels')
app.MainLoop()