.. 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.grid.GridCellEditor:

==========================================================================================================================================
|phoenix_title|  **wx.grid.GridCellEditor**
==========================================================================================================================================

This class is responsible for providing and manipulating the in-place edit controls for the grid.          

Instances of :ref:`wx.grid.GridCellEditor`  (actually, instances of derived classes since it is an abstract class) can be associated with the cell attributes for individual cells, rows, columns, or even for the entire grid. 

Normally :ref:`wx.grid.GridCellEditor`  shows some UI control allowing the user to edit the cell, but starting with wxWidgets 3.1.4 it's also possible to define "activatable" cell editors, that change the value of the cell directly when it's activated (typically by pressing Space key or clicking on it), see :meth:`~wx.grid.GridCellEditor.TryActivate`  method. Note that when implementing an editor which is always activatable, i.e. never shows any in-place editor, it is more convenient to derive its class from :ref:`wx.grid.GridCellActivatableEditor`  than from :ref:`wx.grid.GridCellEditor`  itself. 







         



.. seealso:: :ref:`wx.grid.GridCellAutoWrapStringEditor`, :ref:`wx.grid.GridCellBoolEditor`, :ref:`wx.grid.GridCellChoiceEditor`, :ref:`wx.grid.GridCellEnumEditor`, :ref:`wx.grid.GridCellFloatEditor`, :ref:`wx.grid.GridCellNumberEditor`, :ref:`wx.grid.GridCellTextEditor`, :ref:`wx.grid.GridCellDateEditor`    







|

|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>GridCellEditor</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.grid.GridCellEditor_inheritance.png" alt="Inheritance diagram of GridCellEditor" 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.grid.GridCellEditor.html" title="wx.grid.GridCellEditor" alt="" coords="97,83,261,112"/> <area shape="rect" id="node2" href="wx.ClientDataContainer.html" title="wx.ClientDataContainer" alt="" coords="5,5,183,35"/> <area shape="rect" id="node3" href="wx.RefCounter.html" title="wx.RefCounter" alt="" coords="207,5,325,35"/> </map> 
   </p>
   </div>

|


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

:ref:`wx.grid.GridCellActivatableEditor`, :ref:`wx.grid.GridCellBoolEditor`, :ref:`wx.grid.GridCellChoiceEditor`, :ref:`wx.grid.GridCellDateEditor`, :ref:`wx.grid.GridCellTextEditor`

|


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

================================================================================ ================================================================================
:meth:`~wx.grid.GridCellEditor.__init__`                                         Default constructor.
:meth:`~wx.grid.GridCellEditor.ApplyEdit`                                        Effectively save the changes in the grid.
:meth:`~wx.grid.GridCellEditor.BeginEdit`                                        Fetch the value from the table and prepare the edit control to begin editing.
:meth:`~wx.grid.GridCellEditor.Clone`                                            Create a new object which is the copy of this one.
:meth:`~wx.grid.GridCellEditor.Create`                                           Creates the actual edit control.
:meth:`~wx.grid.GridCellEditor.Destroy`                                          Final cleanup.
:meth:`~wx.grid.GridCellEditor.DoActivate`                                       Function which must be overridden for "activatable" editors.
:meth:`~wx.grid.GridCellEditor.EndEdit`                                          End editing the cell.
:meth:`~wx.grid.GridCellEditor.GetControl`                                       Get the :ref:`wx.Control`  used by this editor.
:meth:`~wx.grid.GridCellEditor.GetValue`                                         Returns the value currently in the editor control.
:meth:`~wx.grid.GridCellEditor.GetWindow`                                        Get the edit window used by this editor.
:meth:`~wx.grid.GridCellEditor.HandleReturn`                                     Some types of controls on some platforms may need some help with the Return key.
:meth:`~wx.grid.GridCellEditor.IsAcceptedKey`                                    Return ``True`` to allow the given key to start editing: the base class version only checks that the event has no modifiers.
:meth:`~wx.grid.GridCellEditor.IsCreated`                                        Returns ``True`` if the edit control has been created.
:meth:`~wx.grid.GridCellEditor.PaintBackground`                                  Draws the part of the cell not occupied by the control: the base class version just fills it with background colour from the attribute.
:meth:`~wx.grid.GridCellEditor.Reset`                                            Reset the value in the control back to its starting value.
:meth:`~wx.grid.GridCellEditor.SetControl`                                       Set the :ref:`wx.Control`  that will be used by this cell editor for editing the value.
:meth:`~wx.grid.GridCellEditor.SetSize`                                          Size and position the edit control.
:meth:`~wx.grid.GridCellEditor.SetWindow`                                        Set the :ref:`wx.Window`  that will be used by this cell editor for editing the value.
:meth:`~wx.grid.GridCellEditor.Show`                                             Show or hide the edit control, use the specified attributes to set colours/fonts for it.
:meth:`~wx.grid.GridCellEditor.StartingClick`                                    If the editor is enabled by clicking on the cell, this method will be called.
:meth:`~wx.grid.GridCellEditor.StartingKey`                                      If the editor is enabled by pressing keys on the grid, this will be called to let the editor do something about that first key if desired.
:meth:`~wx.grid.GridCellEditor.TryActivate`                                      Function allowing to create an "activatable" editor.
:meth:`~wx.grid.GridCellEditor.~wxGridCellEditor`                                The destructor is private because only :meth:`~GridCellEditor.DecRef`   can delete us.
================================================================================ ================================================================================


|


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

================================================================================ ================================================================================
:attr:`~wx.grid.GridCellEditor.Control`                                          See :meth:`~wx.grid.GridCellEditor.GetControl` and :meth:`~wx.grid.GridCellEditor.SetControl`
:attr:`~wx.grid.GridCellEditor.Value`                                            See :meth:`~wx.grid.GridCellEditor.GetValue`
:attr:`~wx.grid.GridCellEditor.Window`                                           See :meth:`~wx.grid.GridCellEditor.GetWindow` and :meth:`~wx.grid.GridCellEditor.SetWindow`
================================================================================ ================================================================================


|


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


.. class:: wx.grid.GridCellEditor(ClientDataContainer, RefCounter)

   **Possible constructors**::

       GridCellEditor()
       
   
   This class is responsible for providing and manipulating the in-place
   edit controls for the grid.



   .. method:: __init__(self)

      Default constructor.                   





   .. method:: ApplyEdit(self, row, col, grid)

      Effectively save the changes in the grid.                  

      This function should save the value of the control in the grid. It is called only after :meth:`EndEdit`   returns ``True``.                  


      :param `row`: 
      :type `row`: int
      :param `col`: 
      :type `col`: int
      :param `grid`: 
      :type `grid`: wx.grid.Grid







   .. method:: BeginEdit(self, row, col, grid)

      Fetch the value from the table and prepare the edit control to begin editing.                  

      This function should save the original value of the grid cell at the given `row`  and `col`  and show the control allowing the user to change it. 

                


      :param `row`: 
      :type `row`: int
      :param `col`: 
      :type `col`: int
      :param `grid`: 
      :type `grid`: wx.grid.Grid






      .. seealso:: :meth:`EndEdit`     








   .. method:: Clone(self)

      Create a new object which is the copy of this one.                  

      :rtype: :ref:`wx.grid.GridCellEditor`








   .. method:: Create(self, parent, id, evtHandler)

      Creates the actual edit control.                  


      :param `parent`: 
      :type `parent`: wx.Window
      :param `id`: 
      :type `id`: wx.WindowID
      :param `evtHandler`: 
      :type `evtHandler`: wx.EvtHandler







   .. method:: Destroy(self)

      Final cleanup.                   





   .. method:: DoActivate(self, row, col, grid)

      Function which must be overridden for "activatable" editors.                  

      If :meth:`TryActivate`   is overridden to return "change" action, this function will be called to actually apply this change. Note that it is not passed the value to apply, as it is assumed that the editor class stores this value as a member variable anyhow. 

                


      :param `row`: 
      :type `row`: int
      :param `col`: 
      :type `col`: int
      :param `grid`: 
      :type `grid`: wx.grid.Grid






      .. versionadded:: 4.1/wxWidgets-3.1.4  
     








   .. method:: EndEdit(self, row, col, grid, oldval)

                                      End editing the cell.

                                      This function must check if the current value of the editing cell
                                      is valid and different from the original value in its string
                                      form. If not then simply return None.  If it has changed then
                                      this method should save the new value so that ApplyEdit can
                                      apply it later and the string representation of the new value
                                      should be returned.

                                      Notice that this method shoiuld not modify the grid as the
                                      change could still be vetoed.
                                  





   .. method:: GetControl(self)

      Get the :ref:`wx.Control`  used by this editor.                  

      This function is preserved for compatibility, but :meth:`GetWindow`   should be preferred in the new code as the associated window doesn't need to be of a Control-derived class. 

      Note that if :meth:`SetWindow`   had been called with an object not deriving from :ref:`wx.Control`, this method will return ``None``.                  

      :rtype: :ref:`Control`








   .. method:: GetValue(self)

      Returns the value currently in the editor control.                  

      :rtype: `string`








   .. method:: GetWindow(self)

      Get the edit window used by this editor.                  

                

      :rtype: :ref:`Window`







      .. versionadded:: 4.1/wxWidgets-3.1.3  
     








   .. method:: HandleReturn(self, event)

      Some types of controls on some platforms may need some help with the Return key.                  


      :param `event`: 
      :type `event`: wx.KeyEvent







   .. method:: IsAcceptedKey(self, event)

      Return ``True`` to allow the given key to start editing: the base class version only checks that the event has no modifiers.                  

      If the key is ``F2`` (special), editing will always start and this method will not be called at all (but :meth:`StartingKey`   will)                  


      :param `event`: 
      :type `event`: wx.KeyEvent




      :rtype: `bool`








   .. method:: IsCreated(self)

      Returns ``True`` if the edit control has been created.                  

      :rtype: `bool`








   .. method:: PaintBackground(self, dc, rectCell, attr)

      Draws the part of the cell not occupied by the control: the base class version just fills it with background colour from the attribute.                  


      :param `dc`: 
      :type `dc`: wx.DC
      :param `rectCell`: 
      :type `rectCell`: wx.Rect
      :param `attr`: 
      :type `attr`: wx.grid.GridCellAttr







   .. method:: Reset(self)

      Reset the value in the control back to its starting value.                   





   .. method:: SetControl(self, control)

      Set the :ref:`wx.Control`  that will be used by this cell editor for editing the value.                  

      This function is preserved for compatibility, but :meth:`SetWindow`   should be preferred in the new code, see :meth:`GetControl` .                  


      :param `control`: 
      :type `control`: wx.Control







   .. method:: SetSize(self, rect)

      Size and position the edit control.                  


      :param `rect`: 
      :type `rect`: wx.Rect







   .. method:: SetWindow(self, window)

      Set the :ref:`wx.Window`  that will be used by this cell editor for editing the value.                  

                


      :param `window`: 
      :type `window`: wx.Window






      .. versionadded:: 4.1/wxWidgets-3.1.3  
     








   .. method:: Show(self, show, attr=None)

      Show or hide the edit control, use the specified attributes to set colours/fonts for it.                  


      :param `show`: 
      :type `show`: bool
      :param `attr`: 
      :type `attr`: wx.grid.GridCellAttr







   .. method:: StartingClick(self)

      If the editor is enabled by clicking on the cell, this method will be called.                   





   .. method:: StartingKey(self, event)

      If the editor is enabled by pressing keys on the grid, this will be called to let the editor do something about that first key if desired.                  


      :param `event`: 
      :type `event`: wx.KeyEvent







   .. method:: TryActivate(self, row, col, grid, actSource)

      Function allowing to create an "activatable" editor.                  

      As explained in this class description, activatable editors don't show any edit control but change the cell value directly, when it is activated (by any way described by :ref:`wx.grid.GridActivationSource`). 

      To create such editor, this method must be overridden to return :meth:`wx.grid.GridActivationResult.DoChange`   passing it the new value of the cell. If the change is not vetoed by wxEVT_GRID_CELL_CHANGING handler, :meth:`DoActivate`   will be called to actually change the value, so it must be overridden as well if :meth:`TryActivate`   is overridden. 

      By default, :meth:`wx.grid.GridActivationResult.DoEdit`   is returned, meaning that this is a normal editor, using an edit control for changing the cell value. 

                


      :param `row`: 
      :type `row`: int
      :param `col`: 
      :type `col`: int
      :param `grid`: 
      :type `grid`: wx.grid.Grid
      :param `actSource`: 
      :type `actSource`: wx.grid.GridActivationSource




      :rtype: :ref:`wx.grid.GridActivationResult`







      .. versionadded:: 4.1/wxWidgets-3.1.4  
     








   .. method:: ~wxGridCellEditor(self)

      The destructor is private because only :meth:`DecRef`   can delete us.                   





   .. attribute:: Control

      See :meth:`~wx.grid.GridCellEditor.GetControl` and :meth:`~wx.grid.GridCellEditor.SetControl`


   .. attribute:: Value

      See :meth:`~wx.grid.GridCellEditor.GetValue`


   .. attribute:: Window

      See :meth:`~wx.grid.GridCellEditor.GetWindow` and :meth:`~wx.grid.GridCellEditor.SetWindow`

