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

==========================================================================================================================================
|phoenix_title|  **wx.BookCtrlBase**
==========================================================================================================================================

A book control is a convenient way of displaying multiple pages of information, displayed one page at a time. 
         

wxWidgets has five variants of this control: 



- :ref:`wx.Choicebook`: controlled by a :ref:`wx.Choice`   
- :ref:`wx.Listbook`: controlled by a :ref:`wx.ListCtrl`   
- :ref:`wx.Notebook`: uses a row of tabs  
- :ref:`wx.Treebook`: controlled by a :ref:`wx.TreeCtrl`   
- :ref:`wx.Toolbook`: controlled by a :ref:`wx.ToolBar` 

This abstract class is the parent of all these book controls, and provides their basic interface. This is a pure virtual class so you cannot allocate it directly.









         



.. seealso:: :ref:`BookCtrl Overview <bookctrl overview>`    







|

|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>BookCtrlBase</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.BookCtrlBase_inheritance.svg" alt="Inheritance diagram of BookCtrlBase" 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.BookCtrlBase.html" title="A book control is a convenient way of displaying multiple pages of information, displayed one page at a time." alt="" coords="118,313,269,341"/> <area shape="rect" id="node2" href="wx.Control.html" title="This is the base class for a control or 'widget'." alt="" coords="69,236,174,265"/> <area shape="rect" id="node3" href="wx.WithImages.html" title="A mixin class to be used with other classes that use a wx.ImageList." alt="" coords="198,236,335,265"/> <area shape="rect" id="node4" href="wx.Window.html" title="wx.Window  is the base class for all windows and represents any visible object on screen." alt="" coords="66,159,177,188"/> <area shape="rect" id="node5" href="wx.EvtHandler.html" title="A class that can handle events from the windowing system." alt="" coords="55,82,188,111"/> <area shape="rect" id="node6" href="wx.Object.html" title="This is the root class of many of the wxWidgets classes." alt="" coords="5,5,104,34"/> <area shape="rect" id="node7" href="wx.Trackable.html" title="Add-on base class for a trackable object." alt="" coords="128,5,251,34"/> </map> 
   </p>
   </div>

|


|sub_classes| Known Subclasses
==============================

:ref:`wx.aui.AuiNotebook`, :ref:`wx.Choicebook`, :ref:`wx.Listbook`, :ref:`wx.Notebook`, :ref:`wx.Simplebook`, :ref:`wx.Toolbook`, :ref:`wx.Treebook`

|


|method_summary| Methods Summary
================================

================================================================================ ================================================================================
:meth:`~wx.BookCtrlBase.__init__`                                                Default constructor.
:meth:`~wx.BookCtrlBase.AddPage`                                                 Adds a new page.
:meth:`~wx.BookCtrlBase.AdvanceSelection`                                        Cycles through the tabs.
:meth:`~wx.BookCtrlBase.ChangeSelection`                                         Changes the selection to the given page, returning the previous selection.
:meth:`~wx.BookCtrlBase.Create`                                                  Constructs the book control with the given parameters.
:meth:`~wx.BookCtrlBase.DeleteAllPages`                                          Deletes all pages.
:meth:`~wx.BookCtrlBase.DeletePage`                                              Deletes the specified page, and the associated window.
:meth:`~wx.BookCtrlBase.FindPage`                                                Returns the index of the specified tab window or  ``NOT_FOUND``   if not found.
:meth:`~wx.BookCtrlBase.GetControlSizer`                                         Returns the sizer containing the control for page selection, if any.
:meth:`~wx.BookCtrlBase.GetCurrentPage`                                          Returns the currently selected page or ``None``.
:meth:`~wx.BookCtrlBase.GetPage`                                                 Returns the window at the given page position.
:meth:`~wx.BookCtrlBase.GetPageCount`                                            Returns the number of pages in the control.
:meth:`~wx.BookCtrlBase.GetPageImage`                                            Returns the image index for the given page.
:meth:`~wx.BookCtrlBase.GetPageText`                                             Returns the string for the given page.
:meth:`~wx.BookCtrlBase.GetSelection`                                            Returns the currently selected page, or  ``NOT_FOUND``   if none was selected.
:meth:`~wx.BookCtrlBase.HitTest`                                                 Returns the index of the tab at the specified position or  ``NOT_FOUND``   if none.
:meth:`~wx.BookCtrlBase.InsertPage`                                              Inserts a new page at the specified position.
:meth:`~wx.BookCtrlBase.RemovePage`                                              Deletes the specified page, without deleting the associated window.
:meth:`~wx.BookCtrlBase.SetPageImage`                                            Sets the image index for the given page.
:meth:`~wx.BookCtrlBase.SetPageSize`                                             Sets the width and height of the pages.
:meth:`~wx.BookCtrlBase.SetPageText`                                             Sets the text for the given page.
:meth:`~wx.BookCtrlBase.SetSelection`                                            Sets the selection to the given page, returning the previous selection.
================================================================================ ================================================================================


|


|property_summary| Properties Summary
=====================================

================================================================================ ================================================================================
:attr:`~wx.BookCtrlBase.ControlSizer`                                            See :meth:`~wx.BookCtrlBase.GetControlSizer`
:attr:`~wx.BookCtrlBase.CurrentPage`                                             See :meth:`~wx.BookCtrlBase.GetCurrentPage`
:attr:`~wx.BookCtrlBase.PageCount`                                               See :meth:`~wx.BookCtrlBase.GetPageCount`
:attr:`~wx.BookCtrlBase.Selection`                                               See :meth:`~wx.BookCtrlBase.GetSelection` and :meth:`~wx.BookCtrlBase.SetSelection`
================================================================================ ================================================================================


|


|api| Class API
===============


.. class:: wx.BookCtrlBase(Control, WithImages)

   **Possible constructors**::

       BookCtrlBase() -> None
       
       BookCtrlBase(parent, winid, pos=DefaultPosition, size=DefaultSize,
                    style=0, name='') -> None
       
   
   A book control is a convenient way of displaying multiple pages of
   information, displayed one page at a time.



   .. method:: __init__(self, *args, **kw)



      |overload| **Overloaded Implementations:**

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

      
      **__init__** `(self)`
      
      Default constructor. 
                       
      
      :rtype: `None`     
      
      
      
      
      
      
      
      :html:`<hr class="overloadsep" /><br />`

      
      **__init__** `(self, parent, winid, pos=DefaultPosition, size=DefaultSize, style=0, name='')`
      
      Constructs the book control with the given parameters. 
                       
      
      See :meth:`Create`   for two-step construction. 
                       
      
      
      :param `parent`: 
      :type `parent`: wx.Window
      :param `winid`: 
      :type `winid`: 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: `None`     
      
      
      
      
      
      
      
      :html:`<hr class="overloadsep" /><br />`






   .. method:: AddPage(self, page, text, select=False, imageId=NO_IMAGE)

      Adds a new page. 
                 

      The page must have the book control itself as the parent and must not have been added to this control previously. 

      The call to this function will generate the page changing and page changed events if `select`  is ``True``, but not when inserting the very first page (as there is no previous page selection to switch from in this case and so it wouldn't make sense to e.g. veto such event). 




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








   .. method:: AdvanceSelection(self, forward=True)

      Cycles through the tabs. 
                 

      The call to this function generates the page changing events. 
                 


      :param `forward`: 
      :type `forward`: bool




      :rtype: `None`     








   .. 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, winid, pos=DefaultPosition, size=DefaultSize, style=0, name='')

      Constructs the book control with the given parameters. 
                 


      :param `parent`: 
      :type `parent`: wx.Window
      :param `winid`: 
      :type `winid`: 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:: DeleteAllPages(self)

      Deletes all pages. 
                 

      :rtype: `bool`








   .. method:: DeletePage(self, page)

      Deletes the specified page, and the associated window. 
                 

      The call to this function generates the page changing events when deleting the currently selected page or a page preceding it in the index order, but it does `not`  send any events when deleting the last page: while in this case the selection also changes, it becomes invalid and for compatibility reasons the control never generates events with the invalid selection index. 
                 


      :param `page`: 
      :type `page`: int




      :rtype: `bool`








   .. method:: FindPage(self, page)

      Returns the index of the specified tab window or  ``NOT_FOUND``   if not found.  
                 




      :param `page`: One of the control pages.   
      :type `page`: wx.Window






      :rtype: `int`




                  



      :returns: 

         The zero-based tab index or  ``NOT_FOUND``   if not found.  







      .. versionadded:: 2.9.5 
     








   .. method:: GetControlSizer(self)

      Returns the sizer containing the control for page selection, if any. 
                 

      Some derived classes, e.g. :ref:`wx.Choicebook`, use a separate control for switching the currently selected page and this function returns the sizer used for positioning this control and the pages themselves inside the book control. 

      Note that many classes, notably :ref:`wx.Notebook`, do not use any such control, and this function simply returns ``None`` for them. 


                

      :rtype: :ref:`wx.Sizer`







      :returns: 

         Non-owning pointer to the sizer or ``None``.   








   .. method:: GetCurrentPage(self)

      Returns the currently selected page or ``None``. 
                 

      :rtype: :ref:`wx.Window`








   .. method:: GetPage(self, page)

      Returns the window at the given page position. 
                 


      :param `page`: 
      :type `page`: int




      :rtype: :ref:`wx.Window`








   .. method:: GetPageCount(self)

      Returns the number of pages in the control. 
                 

      :rtype: `int`








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








   .. 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:: HitTest(self, pt)

      Returns the index of the tab at the specified position or  ``NOT_FOUND``   if none.  
                 

      If `flags`  parameter is not ``None``, the position of the point inside the tab is returned as well. 




      :param `pt`: Specifies the point for the hit test.   
      :type `pt`: wx.Point








      :rtype: :ref:`Tuple[int, int]`




                  



      :returns: 

         Returns the zero-based tab index or  ``NOT_FOUND``   if there is no tab at the specified position.    








   .. 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:: RemovePage(self, page)

      Deletes the specified page, without deleting the associated window. 
                 

      See :meth:`DeletePage`   for a note about the events generated by this function. 
                 


      :param `page`: 
      :type `page`: int




      :rtype: `bool`








   .. 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:`~wx.WithImages.SetImageList` . 
                 


      :param `page`: 
      :type `page`: int
      :param `image`: 
      :type `image`: int




      :rtype: `bool`








   .. method:: SetPageSize(self, size)

      Sets the width and height of the pages. 
                 


                


      :param `size`: 
      :type `size`: wx.Size




      :rtype: `None`     







      .. note:: 

         This method is currently not implemented for wxGTK.   








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

      See :meth:`~wx.BookCtrlBase.GetControlSizer`


   .. attribute:: CurrentPage

      See :meth:`~wx.BookCtrlBase.GetCurrentPage`


   .. attribute:: PageCount

      See :meth:`~wx.BookCtrlBase.GetPageCount`


   .. attribute:: Selection

      See :meth:`~wx.BookCtrlBase.GetSelection` and :meth:`~wx.BookCtrlBase.SetSelection`