.. wxPython Phoenix documentation

   This file was generated by Phoenix's sphinx generator and associated
   tools, do not edit by hand.

   Copyright: (c) 2011-2020 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.  

The styles ``wx.NB_LEFT``, ``wx.RIGHT`` and ``wx.BOTTOM`` are not supported under Microsoft Windows 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, the default theme paints a background 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:: :ref:`wx.BookCtrl`, :ref:`wx.BookCtrlEvent`, :ref:`wx.ImageList`, :ref:`Notebook Sample <notebook sample>`    







|

|class_hierarchy| Class Hierarchy
=================================

.. raw:: html

   <div id="toggleBlock" onclick="return toggleVisibility(this)" class="closed" style="cursor:pointer;">
   <img id="toggleBlock-trigger" src="_static/images/closed.png"/>
   Inheritance diagram for class <strong>Notebook</strong>:
   </div>
   <div id="toggleBlock-summary" style="display:block;"></div>
   <div id="toggleBlock-content" style="display:none;">
   <p class="graphviz">
   <center><img src="_static/images/inheritance/wx.Notebook_inheritance.png" alt="Inheritance diagram of Notebook" usemap="#dummy" class="inheritance"/></center>
   <script type="text/javascript">toggleVisibilityOnLoad(document.getElementById('toggleBlock'))</script>
   <map id="dummy" name="dummy"> <area shape="rect" id="node1" href="wx.Notebook.html" title="wx.Notebook" alt="" coords="120,392,228,421"/> <area shape="rect" id="node2" href="wx.BookCtrlBase.html" title="wx.BookCtrlBase" alt="" coords="107,315,241,344"/> <area shape="rect" id="node3" href="wx.Control.html" title="wx.Control" alt="" coords="63,237,155,267"/> <area shape="rect" id="node4" href="wx.WithImages.html" title="wx.WithImages" alt="" coords="179,237,302,267"/> <area shape="rect" id="node5" href="wx.Window.html" title="wx.Window" alt="" coords="60,160,157,189"/> <area shape="rect" id="node6" href="wx.EvtHandler.html" title="wx.EvtHandler" alt="" coords="50,83,167,112"/> <area shape="rect" id="node7" href="wx.Object.html" title="wx.Object" alt="" coords="5,5,92,35"/> <area shape="rect" id="node8" href="wx.Trackable.html" title="wx.Trackable" alt="" coords="117,5,223,35"/> </map> 
   </p>
   </div>

|


|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.GetClassDefaultAttributes`                                   
: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:

      :html:`<hr class="overloadsep" /><br />`

      
      **__init__** `(self)`
      
      Constructs a notebook control.                   
      
      
      
      
      :html:`<hr class="overloadsep" /><br />`

      
      **__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 non-NULL.   
      :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
      
      
      
      
      
      
      
      
      
      
      
      
      
      
                        
      
      
      
      
      :html:`<hr class="overloadsep" /><br />`






   .. 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 <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`








   .. staticmethod:: GetClassDefaultAttributes(variant=WINDOW_VARIANT_NORMAL)




      :param `variant`: 
      :type `variant`: wx.WindowVariant




      :rtype: :ref:`wx.VisualAttributes`








   .. 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:`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`

