In case you don't want to organize things with tabs or a list, you have the option of using a drop-down list to allow users to switch between virtual pages. The wxChoicebook widget makes this possible. As with the previous widget, the wxChoicebook widget is very similar to the wxNotebook widget in creation:
from wxPython.wx import *
# Create the main window
class Window ( wxFrame ):
def __init__ ( self ):
wxFrame.__init__ ( self, None, -1, 'Frame title.' )
# Create a wxChoicebook
self.choicebook = wxChoicebook ( self, -1 )
self.Show ( True )
# Create a panel
class Panel1 ( wxPanel ):
def __init__ ( self, parent ):
wxPanel.__init__ ( self, parent, -1 )
# Put a label in the panel
self.label = wxStaticText ( self, -1, 'This is the first panel.', pos = ( 25, 25 ) )
# Create another panel
class Panel2 ( wxPanel ):
def __init__ ( self, parent ):
wxPanel.__init__ ( self, parent, -1 )
# Add a few buttons
self.button1 = wxButton ( self, -1, 'This is a button.', pos = ( 5, 5 ) )
self.button2 = wxButton ( self, -1, 'So is this.', pos = ( 30, 30 ) )
self.button3 = wxButton ( self, -1, 'And this.', pos = ( 25, 60 ) )
# Create yet another panel
class Panel3 ( wxPanel ):
def __init__ ( self, parent ):
wxPanel.__init__ ( self, parent, -1 )
# Add a few text boxes
self.text1 = wxTextCtrl ( self, -1, pos = ( 5, 5 ) )
self.text2 = wxTextCtrl ( self, -1, pos = ( 5, 50 ), style = wxTE_MULTILINE )
self.text3 = wxTextCtrl ( self, -1, pos = ( 30, 25 ), style = wxTE_PASSWORD )
application = wxPySimpleApp()
frame = Window()
# Create the panels
instance1 = Panel1 ( frame.choicebook )
instance2 = Panel2 ( frame.choicebook )
instance3 = Panel3 ( frame.choicebook )
# Add the panels
frame.choicebook.AddPage ( instance1, 'Panel One' )
frame.choicebook.AddPage ( instance2, 'Panel Two' )
frame.choicebook.AddPage ( instance3, 'Panel Three' )
application.MainLoop()