wxWidgets/wxPython/demo/wxNotebook.py

111 lines
3.0 KiB
Python
Raw Normal View History

from wxPython.wx import *
import ColorPanel
import GridSimple
import wxListCtrl
import wxScrolledWindow
import sys
#----------------------------------------------------------------------------
class TestNB(wxNotebook):
def __init__(self, parent, id, log):
wxNotebook.__init__(self, parent, id, style=wxNB_BOTTOM)
self.log = log
win = ColorPanel.ColoredPanel(self, wxBLUE)
self.AddPage(win, "Blue")
st = wxStaticText(win, -1,
"You can put nearly any type of window here,\n"
"and if the platform supports it then the\n"
"tabs can be on any side of the notebook.",
wxPoint(10, 10))
st.SetForegroundColour(wxWHITE)
st.SetBackgroundColour(wxBLUE)
win = ColorPanel.ColoredPanel(self, wxRED)
self.AddPage(win, "Red")
win = wxScrolledWindow.MyCanvas(self)
self.AddPage(win, 'ScrolledWindow')
win = ColorPanel.ColoredPanel(self, wxGREEN)
self.AddPage(win, "Green")
win = GridSimple.SimpleGrid(self, log)
self.AddPage(win, "Grid")
win = wxListCtrl.TestListCtrlPanel(self, log)
self.AddPage(win, 'List')
win = ColorPanel.ColoredPanel(self, wxCYAN)
self.AddPage(win, "Cyan")
win = ColorPanel.ColoredPanel(self, wxWHITE)
self.AddPage(win, "White")
win = ColorPanel.ColoredPanel(self, wxBLACK)
self.AddPage(win, "Black")
win = ColorPanel.ColoredPanel(self, wxNamedColour('MIDNIGHT BLUE'))
self.AddPage(win, "MIDNIGHT BLUE")
win = ColorPanel.ColoredPanel(self, wxNamedColour('INDIAN RED'))
self.AddPage(win, "INDIAN RED")
EVT_NOTEBOOK_PAGE_CHANGED(self, self.GetId(), self.OnPageChanged)
EVT_NOTEBOOK_PAGE_CHANGING(self, self.GetId(), self.OnPageChanging)
def OnPageChanged(self, event):
old = event.GetOldSelection()
new = event.GetSelection()
self.log.write('OnPageChanged, old:%d, new:%d\n' % (old, new))
event.Skip()
def OnPageChanging(self, event):
old = event.GetOldSelection()
new = event.GetSelection()
self.log.write('OnPageChanging, old:%d, new:%d\n' % (old, new))
event.Skip()
#----------------------------------------------------------------------------
def runTest(frame, nb, log):
testWin = TestNB(nb, -1, log)
return testWin
#----------------------------------------------------------------------------
overview = """\
This class represents a notebook control, which manages multiple windows with associated tabs.
To use the class, create a wxNotebook object and call AddPage or InsertPage, passing a window to be used as the page. Do not explicitly delete the window for a page that is currently managed by wxNotebook.
"""
if __name__ == "__main__":
app = wxPySimpleApp()
frame = wxFrame(None, -1, "Test Notebook", size=(600, 400))
win = TestNB(frame, -1, sys.stdout)
frame.Show(true)
app.MainLoop()