.. wxPython Phoenix documentation
This file was generated by Phoenix's sphinx generator and associated
tools, do not edit by hand.
Copyright: (c) 2011-2018 by Total Control Software
License: wxWindows License
.. include:: headings.inc
.. _wx.Notebook:
==========================================================================================================================================
|phoenix_title| **wx.Notebook**
==========================================================================================================================================
This class represents a notebook control, which manages multiple windows with associated tabs.
To use the class, create a :ref:`wx.Notebook` object and call :meth:`wx.Notebook.AddPage ` or :meth:`wx.Notebook.InsertPage` , passing a window to be used as the page. Do not explicitly delete the window for a page that is currently managed by :ref:`wx.Notebook`.
**NotebookPage** is a typedef for :ref:`wx.Window`.
.. _Notebook-styles:
|styles| Window Styles
================================
This class supports the following styles:
- ``wx.NB_TOP``: Place tabs on the top side.
- ``wx.NB_LEFT``: Place tabs on the left side.
- ``wx.NB_RIGHT``: Place tabs on the right side.
- ``wx.NB_BOTTOM``: Place tabs under instead of above the notebook pages.
- ``wx.NB_FIXEDWIDTH``: (Windows only) All tabs will have same width.
- ``wx.NB_MULTILINE``: (Windows only) There can be several rows of tabs.
- ``wx.NB_NOPAGETHEME``: (Windows only) Display a solid colour on notebook pages, and not a gradient, which can reduce performance.
- ``wx.NB_FLAT``: (Windows ``CE`` only) Show tabs in a flat style.
The styles ``wx.NB_LEFT``, ``wx.RIGHT`` and ``wx.BOTTOM`` are not supported under Microsoft Windows XP when using visual themes.
.. _Notebook-events:
|events| Events Emitted by this Class
=====================================
Handlers bound for the following event types will receive a :ref:`wx.BookCtrlEvent` parameter.
- EVT_NOTEBOOK_PAGE_CHANGED: The page selection was changed. Processes a ``wxEVT_NOTEBOOK_PAGE_CHANGED`` event.
- EVT_NOTEBOOK_PAGE_CHANGING: The page selection is about to be changed. Processes a ``wxEVT_NOTEBOOK_PAGE_CHANGING`` event. This event can be vetoed.
|phoenix_title| Page backgrounds
================================
On Windows XP, the default theme paints a gradient on the notebook's pages. If you wish to suppress this theme, for aesthetic or performance reasons, there are three ways of doing it. You can use ``NB_NOPAGETHEME`` to disable themed drawing for a particular notebook, you can call :meth:`wx.SystemOptions.SetOption` to disable it for the whole application, or you can disable it for individual pages by using :meth:`~wx.Notebook.SetBackgroundColour`. To disable themed pages globally: ::
wx.SystemOptions.SetOption("msw.notebook.themed-background", 0)
Set the value to 1 to enable it again. To give a single page a solid background that more or less fits in with the overall theme, use: ::
col = notebook.GetThemeBackgroundColour()
if col.IsOk():
page.SetBackgroundColour(col)
On platforms other than Windows, or if the application is not using Windows themes, :meth:`~wx.Notebook.GetThemeBackgroundColour` will return an uninitialised colour object, and the above code will therefore work on all platforms.
.. seealso:: `wx.BookCtrl` , :ref:`wx.BookCtrlEvent`, :ref:`wx.ImageList`, :ref:`Notebook Sample `
|
|class_hierarchy| Class Hierarchy
=================================
.. raw:: html

Inheritance diagram for class
Notebook:
|
|appearance| Control Appearance
===============================
|
.. figure:: _static/images/widgets/fullsize/wxmsw/wx.notebook.png
:alt: wxMSW
:figclass: floatleft
**wxMSW**
.. figure:: _static/images/widgets/fullsize/wxmac/wx.notebook.png
:alt: wxMAC
:figclass: floatright
**wxMAC**
.. figure:: _static/images/widgets/fullsize/wxgtk/wx.notebook.png
:alt: wxGTK
:figclass: floatcenter
**wxGTK**
|
|method_summary| Methods Summary
================================
================================================================================ ================================================================================
:meth:`~wx.Notebook.__init__` Constructs a notebook control.
:meth:`~wx.Notebook.ChangeSelection` Changes the selection to the given page, returning the previous selection.
:meth:`~wx.Notebook.Create` Creates a notebook control.
:meth:`~wx.Notebook.GetPageImage` Returns the image index for the given page.
:meth:`~wx.Notebook.GetPageText` Returns the string for the given page.
:meth:`~wx.Notebook.GetRowCount` Returns the number of rows in the notebook control.
:meth:`~wx.Notebook.GetSelection` Returns the currently selected page, or ``NOT_FOUND`` if none was selected.
:meth:`~wx.Notebook.GetThemeBackgroundColour` If running under Windows and themes are enabled for the application, this function returns a suitable colour for painting the background of a notebook page, and can be passed to :meth:`~Notebook.SetBackgroundColour` .
:meth:`~wx.Notebook.InsertPage` Inserts a new page at the specified position.
:meth:`~wx.Notebook.SetPadding` Sets the amount of space around each page's icon and label, in pixels.
:meth:`~wx.Notebook.SetPageImage` Sets the image index for the given page.
:meth:`~wx.Notebook.SetPageText` Sets the text for the given page.
:meth:`~wx.Notebook.SetSelection` Sets the selection to the given page, returning the previous selection.
================================================================================ ================================================================================
|
|property_summary| Properties Summary
=====================================
================================================================================ ================================================================================
:attr:`~wx.Notebook.RowCount` See :meth:`~wx.Notebook.GetRowCount`
:attr:`~wx.Notebook.Selection` See :meth:`~wx.Notebook.GetSelection` and :meth:`~wx.Notebook.SetSelection`
:attr:`~wx.Notebook.ThemeBackgroundColour` See :meth:`~wx.Notebook.GetThemeBackgroundColour`
================================================================================ ================================================================================
|
|api| Class API
===============
.. class:: wx.Notebook(BookCtrlBase)
**Possible constructors**::
Notebook()
Notebook(parent, id=ID_ANY, pos=DefaultPosition, size=DefaultSize,
style=0, name=NotebookNameStr)
This class represents a notebook control, which manages multiple
windows with associated tabs.
.. method:: __init__(self, *args, **kw)
|overload| Overloaded Implementations:
**~~~**
**__init__** `(self)`
Constructs a notebook control.
**~~~**
**__init__** `(self, parent, id=ID_ANY, pos=DefaultPosition, size=DefaultSize, style=0, name=NotebookNameStr)`
Constructs a notebook control.
Note that sometimes you can reduce flicker by passing the ``wx.CLIP_CHILDREN`` window style.
:param `parent`: The parent window. Must be not ``None``.
:type `parent`: wx.Window
:param `id`: The window identifier.
:type `id`: wx.WindowID
:param `pos`: The window position.
:type `pos`: wx.Point
:param `size`: The window size.
:type `size`: wx.Size
:param `style`: The window style. See :ref:`wx.Notebook`.
:type `style`: long
:param `name`: The name of the control.
:type `name`: string
**~~~**
.. method:: ChangeSelection(self, page)
Changes the selection to the given page, returning the previous selection.
This function behaves as :meth:`SetSelection` but does `not` generate the page changing events.
See :ref:`User Generated Events vs Programmatically Generated Events ` for more information.
:param `page`:
:type `page`: int
:rtype: `int`
.. method:: Create(self, parent, id=ID_ANY, pos=DefaultPosition, size=DefaultSize, style=0, name=NotebookNameStr)
Creates a notebook control.
See :ref:`wx.Notebook` for a description of the parameters.
:param `parent`:
:type `parent`: wx.Window
:param `id`:
:type `id`: wx.WindowID
:param `pos`:
:type `pos`: wx.Point
:param `size`:
:type `size`: wx.Size
:param `style`:
:type `style`: long
:param `name`:
:type `name`: string
:rtype: `bool`
.. method:: GetPageImage(self, nPage)
Returns the image index for the given page.
:param `nPage`:
:type `nPage`: int
:rtype: `int`
.. method:: GetPageText(self, nPage)
Returns the string for the given page.
:param `nPage`:
:type `nPage`: int
:rtype: `string`
.. method:: GetRowCount(self)
Returns the number of rows in the notebook control.
:rtype: `int`
.. method:: GetSelection(self)
Returns the currently selected page, or ``NOT_FOUND`` if none was selected.
Note that this method may return either the previously or newly selected page when called from the ``EVT_BOOKCTRL_PAGE_CHANGED`` handler depending on the platform and so :meth:`wx.BookCtrlEvent.GetSelection` should be used instead in this case.
:rtype: `int`
.. method:: GetThemeBackgroundColour(self)
If running under Windows and themes are enabled for the application, this function returns a suitable colour for painting the background of a notebook page, and can be passed to :meth:`SetBackgroundColour` .
Otherwise, an uninitialised colour will be returned.
:rtype: :ref:`wx.Colour`
.. method:: InsertPage(self, index, page, text, select=False, imageId=NO_IMAGE)
Inserts a new page at the specified position.
:param `index`: Specifies the position for the new page.
:type `index`: int
:param `page`: Specifies the new page.
:type `page`: wx.Window
:param `text`: Specifies the text for the new page.
:type `text`: string
:param `select`: Specifies whether the page should be selected.
:type `select`: bool
:param `imageId`: Specifies the optional image index for the new page.
:type `imageId`: int
:rtype: `bool`
:returns:
``True`` if successful, ``False`` otherwise.
.. note::
Do not delete the page, it will be deleted by the book control.
.. seealso:: :meth:`~wx.BookCtrlBase.AddPage`
.. method:: SetPadding(self, padding)
Sets the amount of space around each page's icon and label, in pixels.
:param `padding`:
:type `padding`: wx.Size
.. note::
The vertical padding cannot be changed in wxGTK.
.. method:: SetPageImage(self, page, image)
Sets the image index for the given page.
`image` is an index into the image list which was set with :meth:`SetImageList` .
:param `page`:
:type `page`: int
:param `image`:
:type `image`: int
:rtype: `bool`
.. method:: SetPageText(self, page, text)
Sets the text for the given page.
:param `page`:
:type `page`: int
:param `text`:
:type `text`: string
:rtype: `bool`
.. method:: SetSelection(self, page)
Sets the selection to the given page, returning the previous selection.
Notice that the call to this function generates the page changing events, use the :meth:`ChangeSelection` function if you don't want these events to be generated.
:param `page`:
:type `page`: int
:rtype: `int`
.. seealso:: :meth:`GetSelection`
.. attribute:: RowCount
See :meth:`~wx.Notebook.GetRowCount`
.. attribute:: Selection
See :meth:`~wx.Notebook.GetSelection` and :meth:`~wx.Notebook.SetSelection`
.. attribute:: ThemeBackgroundColour
See :meth:`~wx.Notebook.GetThemeBackgroundColour`