July 2002
Intermediate to advanced
608 pages
15h 46m
English
Credit: Mark Nenadov
You want to design a wxPython GUI
comprised of multiple panels—each driven by a separate Python
script running in the background—that let the user switch back
and forth (i.e., a wxPython Notebook).
Notebooks are a powerful GUI
approach, as they let the user select the desired view from several
options at any time with an instinctive button click. wxPython
supports this by supplying a
wxNotebook widget:
from wxPython.wx import *
class MainFrame(wxFrame):
#
# snipped: mainframe class attributes
#
def _ _init_ _(self, parent, id, title):
#
# snipped: frame-specific initialization
#
# Create the notebook
self.nb = wxNotebook(self, -1,
wxPoint(0,0), wxSize(0,0), wxNB_FIXEDWIDTH)
# Populate the notebook with pages (panels)
panel_names = "First Panel", "Second Panel", "The Third One"
panel_scripts = "panel1", "panel2", "panel3"
for name, script in zip(panel_names, panel_scripts):
# Make panel named 'name' (driven by script 'script'.py)
self.module = _ _import_ _(script, globals( ))
self.window = self.module.runPanel(self, self.nb)
if self.window: self.nb.AddPage(self.window, name)
#
# snipped: rest of frame initialization
#wxPython provides a powerful notebook user-interface object, with multiple panels, each of which is built and driven by a separate Python script. Each panel’s script runs in the background, even when the panel is not selected, and maintains state as the user switches back and forth.