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.
Read now
Unlock full access