.. 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.propgrid.PropertyGrid:

==========================================================================================================================================
|phoenix_title|  **wx.propgrid.PropertyGrid**
==========================================================================================================================================

:ref:`wx.propgrid.PropertyGrid`  is a specialized grid for editing properties - in other words name = value pairs.          

List of ready-to-use property classes include strings, numbers, flag sets, fonts, colours and many others. It is possible, for example, to categorize properties, set up a complete tree-hierarchy, add more than two columns, and set arbitrary per-property attributes. 

Please note that most member functions are inherited and as such not documented on this page. This means you will probably also want to read :ref:`wx.propgrid.PropertyGridInterface`  class reference. 

See also :ref:`PropertyGrid Overview <propertygrid overview>`. 



|phoenix_title| Window Styles
=============================

See :ref:`PropertyGrid Window Styles <propertygrid window styles>`.  



|phoenix_title| Event Handling
==============================

Please see :ref:`wx.propgrid.PropertyGridEvent`  for the documentation of all event types you can use with :ref:`wx.propgrid.PropertyGrid`.   



.. note:: 

   Use :meth:`Freeze`   and :meth:`Thaw`   respectively to disable and enable drawing. This will also delay sorting etc. miscellaneous calculations to the last possible moment.  







|

|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>PropertyGrid</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.propgrid.PropertyGrid_inheritance.png" alt="Inheritance diagram of PropertyGrid" 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.propgrid.PropertyGrid.html" title="wx.propgrid.PropertyGrid" alt="" coords="113,179,298,208"/> <area shape="rect" id="node2" href="Scrolled&lt; wxControl &gt;.html" title="Scrolled&lt; wxControl &gt;" alt="" coords="5,101,176,131"/> <area shape="rect" id="node3" href="wx.propgrid.PropertyGridInterface.html" title="wx.propgrid.PropertyGridInterface" alt="" coords="200,101,443,131"/> </map> 
   </p>
   </div>

|


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

================================================================================ ================================================================================
:meth:`~wx.propgrid.PropertyGrid.__init__`                                       Two step constructor.
:meth:`~wx.propgrid.PropertyGrid.AddActionTrigger`                               Adds given key combination to trigger given action.
:meth:`~wx.propgrid.PropertyGrid.AddToSelection`                                 Adds given property into selection.
:meth:`~wx.propgrid.PropertyGrid.AdjustScrollbars`                               
:meth:`~wx.propgrid.PropertyGrid.AutoGetTranslation`                             This static function enables or disables automatic use of :ref:`wx.GetTranslation`  for following strings: :ref:`wx.propgrid.EnumProperty`  list labels, :ref:`wx.propgrid.FlagsProperty`  child property labels.
:meth:`~wx.propgrid.PropertyGrid.BeginLabelEdit`                                 Creates label editor :ref:`wx.TextCtrl`  for given column, for property that is currently selected.
:meth:`~wx.propgrid.PropertyGrid.CalcScrolledPosition`                           Translates the logical coordinates to the device ones.
:meth:`~wx.propgrid.PropertyGrid.CalcUnscrolledPosition`                         Translates the device coordinates to the logical ones.
:meth:`~wx.propgrid.PropertyGrid.CenterSplitter`                                 Centers the splitter.
:meth:`~wx.propgrid.PropertyGrid.ChangePropertyValue`                            Changes value of a property, as if from an editor.
:meth:`~wx.propgrid.PropertyGrid.Clear`                                          Deletes all properties.
:meth:`~wx.propgrid.PropertyGrid.ClearActionTriggers`                            Clears action triggers for given action.
:meth:`~wx.propgrid.PropertyGrid.CommitChangesFromEditor`                        Forces updating the value of property from the editor control.
:meth:`~wx.propgrid.PropertyGrid.Create`                                         Two step creation.
:meth:`~wx.propgrid.PropertyGrid.DedicateKey`                                    Dedicates a specific keycode to :ref:`wx.propgrid.PropertyGrid`.
:meth:`~wx.propgrid.PropertyGrid.DisableKeyboardScrolling`                       Disable use of keyboard keys for scrolling.
:meth:`~wx.propgrid.PropertyGrid.DoHidePropertyError`                            Override in derived class to hide an error displayed by :meth:`~PropertyGrid.DoShowPropertyError` .
:meth:`~wx.propgrid.PropertyGrid.DoOnValidationFailure`                          Override to customize property validation failure behaviour.
:meth:`~wx.propgrid.PropertyGrid.DoOnValidationFailureReset`                     Override to customize resetting of property validation failure status.
:meth:`~wx.propgrid.PropertyGrid.DoPrepareDC`                                    Call this function to prepare the device context for drawing a scrolled image.
:meth:`~wx.propgrid.PropertyGrid.DoRegisterEditorClass`                          Registers a new editor class.
:meth:`~wx.propgrid.PropertyGrid.DoShowPropertyError`                            Override in derived class to display error messages in custom manner (these message usually only result from validation failure).
:meth:`~wx.propgrid.PropertyGrid.DrawItemAndValueRelated`                        Draws item, children, and consecutive parents as long as category is not met.
:meth:`~wx.propgrid.PropertyGrid.EditorsValueWasModified`                        Call when editor widget's contents is modified.
:meth:`~wx.propgrid.PropertyGrid.EditorsValueWasNotModified`                     Reverse of :meth:`~PropertyGrid.EditorsValueWasModified` .
:meth:`~wx.propgrid.PropertyGrid.EnableCategories`                               Enables or disables (shows/hides) categories according to parameter enable.
:meth:`~wx.propgrid.PropertyGrid.EnableScrolling`                                Enable or disable use of :meth:`wx.Window.ScrollWindow`   for scrolling.
:meth:`~wx.propgrid.PropertyGrid.EndLabelEdit`                                   Destroys label editor :ref:`wx.TextCtrl`, if any.
:meth:`~wx.propgrid.PropertyGrid.EnsureVisible`                                  Scrolls and/or expands items to ensure that the given item is visible.
:meth:`~wx.propgrid.PropertyGrid.FitColumns`                                     Reduces column sizes to minimum possible, while still retaining fully visible grid contents (labels, images).
:meth:`~wx.propgrid.PropertyGrid.GetCaptionBackgroundColour`                     Returns current category caption background colour.
:meth:`~wx.propgrid.PropertyGrid.GetCaptionFont`                                 Returns current category caption font.
:meth:`~wx.propgrid.PropertyGrid.GetCaptionForegroundColour`                     Returns current category caption text colour.
:meth:`~wx.propgrid.PropertyGrid.GetCellBackgroundColour`                        Returns current cell background colour.
:meth:`~wx.propgrid.PropertyGrid.GetCellDisabledTextColour`                      Returns current cell text colour when disabled.
:meth:`~wx.propgrid.PropertyGrid.GetCellTextColour`                              Returns current cell text colour.
:meth:`~wx.propgrid.PropertyGrid.GetClassDefaultAttributes`                      
:meth:`~wx.propgrid.PropertyGrid.GetColumnCount`                                 Returns number of columns currently on grid.
:meth:`~wx.propgrid.PropertyGrid.GetEditorTextCtrl`                              Returns :ref:`wx.TextCtrl`  active in currently selected property, if any.
:meth:`~wx.propgrid.PropertyGrid.GetEmptySpaceColour`                            Returns colour of empty space below properties.
:meth:`~wx.propgrid.PropertyGrid.GetFontHeight`                                  Returns height of highest characters of used font.
:meth:`~wx.propgrid.PropertyGrid.GetGrid`                                        Returns pointer to itself.
:meth:`~wx.propgrid.PropertyGrid.GetImageRect`                                   Returns rectangle of custom paint image.
:meth:`~wx.propgrid.PropertyGrid.GetImageSize`                                   Returns size of the custom paint image in front of property.
:meth:`~wx.propgrid.PropertyGrid.GetLabelEditor`                                 Returns currently active label editor, ``None`` if none.
:meth:`~wx.propgrid.PropertyGrid.GetLastItem`                                    Returns last item which could be iterated using given flags.
:meth:`~wx.propgrid.PropertyGrid.GetLineColour`                                  Returns colour of lines between cells.
:meth:`~wx.propgrid.PropertyGrid.GetMarginColour`                                Returns background colour of margin.
:meth:`~wx.propgrid.PropertyGrid.GetMarginWidth`                                 Returns margin width.
:meth:`~wx.propgrid.PropertyGrid.GetPanel`                                       Returns :ref:`wx.Window`  that the properties are painted on, and which should be used as the parent for editor controls.
:meth:`~wx.propgrid.PropertyGrid.GetRoot`                                        Returns "root property".
:meth:`~wx.propgrid.PropertyGrid.GetRowHeight`                                   Returns height of a single grid row (in pixels).
:meth:`~wx.propgrid.PropertyGrid.GetScaleX`                                      
:meth:`~wx.propgrid.PropertyGrid.GetScaleY`                                      
:meth:`~wx.propgrid.PropertyGrid.GetScrollLines`                                 
:meth:`~wx.propgrid.PropertyGrid.GetScrollPageSize`                              
:meth:`~wx.propgrid.PropertyGrid.GetScrollPixelsPerUnit`                         Get the number of pixels per scroll unit (line), in each direction, as set by :meth:`~PropertyGrid.SetScrollbars` .
:meth:`~wx.propgrid.PropertyGrid.GetSelectedProperty`                            Returns currently selected property.
:meth:`~wx.propgrid.PropertyGrid.GetSelection`                                   Returns currently selected property.
:meth:`~wx.propgrid.PropertyGrid.GetSelectionBackgroundColour`                   Returns current selection background colour.
:meth:`~wx.propgrid.PropertyGrid.GetSelectionForegroundColour`                   Returns current selection text colour.
:meth:`~wx.propgrid.PropertyGrid.GetSizeAvailableForScrollTarget`                Function which must be overridden to implement the size available for the scroll target for the given size of the main window.
:meth:`~wx.propgrid.PropertyGrid.GetSplitterPosition`                            Returns current splitter x position.
:meth:`~wx.propgrid.PropertyGrid.GetStatusBar`                                   Return :ref:`wx.StatusBar`  that is used by this :ref:`wx.propgrid.PropertyGrid`.
:meth:`~wx.propgrid.PropertyGrid.GetTargetRect`                                  
:meth:`~wx.propgrid.PropertyGrid.GetTargetWindow`                                
:meth:`~wx.propgrid.PropertyGrid.GetUncommittedPropertyValue`                    Returns most up-to-date value of selected property.
:meth:`~wx.propgrid.PropertyGrid.GetUnspecifiedValueAppearance`                  Returns current appearance of unspecified value cells.
:meth:`~wx.propgrid.PropertyGrid.GetUnspecifiedValueText`                        Returns (visual) text representation of the unspecified property value.
:meth:`~wx.propgrid.PropertyGrid.GetVerticalSpacing`                             Returns current vertical spacing.
:meth:`~wx.propgrid.PropertyGrid.GetViewStart`                                   Get the position at which the visible portion of the window starts.
:meth:`~wx.propgrid.PropertyGrid.HitTest`                                        Returns information about arbitrary position in the grid.
:meth:`~wx.propgrid.PropertyGrid.IsAnyModified`                                  Returns ``True`` if any property has been modified by the user.
:meth:`~wx.propgrid.PropertyGrid.IsAutoScrolling`                                Are we generating the autoscroll events?
:meth:`~wx.propgrid.PropertyGrid.IsEditorFocused`                                Returns ``True`` if a property editor control has focus.
:meth:`~wx.propgrid.PropertyGrid.IsEditorsValueModified`                         Returns ``True`` if editor's value was marked modified.
:meth:`~wx.propgrid.PropertyGrid.IsFrozen`                                       Returns ``True`` if updating is frozen (i.e.
:meth:`~wx.propgrid.PropertyGrid.IsRetained`                                     Motif only: ``True`` if the window has a backing bitmap.
:meth:`~wx.propgrid.PropertyGrid.MakeColumnEditable`                             Makes given column editable by user.
:meth:`~wx.propgrid.PropertyGrid.OnDraw`                                         Called by the default paint event handler to allow the application to define painting behaviour without having to worry about calling :meth:`~PropertyGrid.DoPrepareDC` .
:meth:`~wx.propgrid.PropertyGrid.OnTLPChanging`                                  It is recommended that you call this function any time your code causes :ref:`wx.propgrid.PropertyGrid`'s top-level parent to change.
:meth:`~wx.propgrid.PropertyGrid.PrepareDC`                                      This function is for backwards compatibility only and simply calls :meth:`~PropertyGrid.DoPrepareDC`   now.
:meth:`~wx.propgrid.PropertyGrid.RefreshEditor`                                  Refreshes any active editor control.
:meth:`~wx.propgrid.PropertyGrid.RefreshProperty`                                Redraws given property.
:meth:`~wx.propgrid.PropertyGrid.RegisterEditorClass`                            Forwards to DoRegisterEditorClass with empty name.
:meth:`~wx.propgrid.PropertyGrid.RemoveFromSelection`                            Removes given property from selection.
:meth:`~wx.propgrid.PropertyGrid.ResetColours`                                   Resets all colours to the original system values.
:meth:`~wx.propgrid.PropertyGrid.ResetColumnSizes`                               Resets column sizes and splitter positions, based on proportions.
:meth:`~wx.propgrid.PropertyGrid.Scroll`                                         Scrolls a window so the view start is at the given point.
:meth:`~wx.propgrid.PropertyGrid.SelectProperty`                                 Selects a property.
:meth:`~wx.propgrid.PropertyGrid.SendAutoScrollEvents`                           This method can be overridden in a derived class to forbid sending the auto scroll events - note that unlike :meth:`~PropertyGrid.StopAutoScrolling`   it doesn't stop the timer, so it will be called repeatedly and will typically return different values depending on the current mouse position.
:meth:`~wx.propgrid.PropertyGrid.SetCaptionBackgroundColour`                     Sets category caption background colour.
:meth:`~wx.propgrid.PropertyGrid.SetCaptionTextColour`                           Sets category caption text colour.
:meth:`~wx.propgrid.PropertyGrid.SetCellBackgroundColour`                        Sets default cell background colour - applies to property cells.
:meth:`~wx.propgrid.PropertyGrid.SetCellDisabledTextColour`                      Sets cell text colour for disabled properties.
:meth:`~wx.propgrid.PropertyGrid.SetCellTextColour`                              Sets default cell text colour - applies to property name and value text.
:meth:`~wx.propgrid.PropertyGrid.SetColumnCount`                                 Set number of columns (2 or more).
:meth:`~wx.propgrid.PropertyGrid.SetCurrentCategory`                             Sets the 'current' category - Append will add non-category properties under it.
:meth:`~wx.propgrid.PropertyGrid.SetEmptySpaceColour`                            Sets colour of empty space below properties.
:meth:`~wx.propgrid.PropertyGrid.SetLineColour`                                  Sets colour of lines between cells.
:meth:`~wx.propgrid.PropertyGrid.SetMarginColour`                                Sets background colour of margin.
:meth:`~wx.propgrid.PropertyGrid.SetScale`                                       
:meth:`~wx.propgrid.PropertyGrid.SetScrollPageSize`                              
:meth:`~wx.propgrid.PropertyGrid.SetScrollRate`                                  Set the horizontal and vertical scrolling increment only.
:meth:`~wx.propgrid.PropertyGrid.SetScrollbars`                                  Sets up vertical and/or horizontal scrollbars.
:meth:`~wx.propgrid.PropertyGrid.SetSelection`                                   Set entire new selection from given list of properties.
:meth:`~wx.propgrid.PropertyGrid.SetSelectionBackgroundColour`                   Sets selection background colour - applies to selected property name background.
:meth:`~wx.propgrid.PropertyGrid.SetSelectionTextColour`                         Sets selection foreground colour - applies to selected property name text.
:meth:`~wx.propgrid.PropertyGrid.SetSplitterLeft`                                Moves splitter as left as possible, while still allowing all labels to be shown in full.
:meth:`~wx.propgrid.PropertyGrid.SetSplitterPosition`                            Sets x coordinate of the splitter.
:meth:`~wx.propgrid.PropertyGrid.SetTargetRect`                                  
:meth:`~wx.propgrid.PropertyGrid.SetTargetWindow`                                Call this function to tell :ref:`wx.Scrolled`  to perform the actual scrolling on a different window (and not on itself).
:meth:`~wx.propgrid.PropertyGrid.SetUnspecifiedValueAppearance`                  Sets appearance of value cells representing an unspecified property value.
:meth:`~wx.propgrid.PropertyGrid.SetVerticalSpacing`                             Sets vertical spacing.
:meth:`~wx.propgrid.PropertyGrid.SetVirtualWidth`                                Set virtual width for this particular page.
:meth:`~wx.propgrid.PropertyGrid.SetupTextCtrlValue`                             Must be called in :meth:`wx.propgrid.PGEditor.CreateControls`   if primary editor window is :ref:`wx.TextCtrl`, just before textctrl is created.
:meth:`~wx.propgrid.PropertyGrid.ShouldScrollToChildOnFocus`                     This method can be overridden in a derived class to prevent scrolling the child window into view automatically when it gets focus.
:meth:`~wx.propgrid.PropertyGrid.ShowPropertyError`                              Shows an brief error message that is related to a property.
:meth:`~wx.propgrid.PropertyGrid.ShowScrollbars`                                 Set the scrollbar visibility.
:meth:`~wx.propgrid.PropertyGrid.StopAutoScrolling`                              Stop generating the scroll events when mouse is held outside the window.
:meth:`~wx.propgrid.PropertyGrid.UnfocusEditor`                                  Unfocuses or closes editor if one was open, but does not deselect property.
:meth:`~wx.propgrid.PropertyGrid.ValueChangeInEvent`                             Call this from :meth:`wx.propgrid.PGProperty.OnEvent`   to cause property value to be changed after the function returns (with ``True`` as return value).
:meth:`~wx.propgrid.PropertyGrid.WasValueChangedInEvent`                         You can use this member function, for instance, to detect in :meth:`wx.propgrid.PGProperty.OnEvent`   if :meth:`wx.propgrid.PGProperty.SetValueInEvent`   was already called in :meth:`wx.propgrid.PGEditor.OnEvent` .
================================================================================ ================================================================================


|


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

================================================================================ ================================================================================
:attr:`~wx.propgrid.PropertyGrid.CaptionBackgroundColour`                        See :meth:`~wx.propgrid.PropertyGrid.GetCaptionBackgroundColour` and :meth:`~wx.propgrid.PropertyGrid.SetCaptionBackgroundColour`
:attr:`~wx.propgrid.PropertyGrid.CaptionFont`                                    See :meth:`~wx.propgrid.PropertyGrid.GetCaptionFont`
:attr:`~wx.propgrid.PropertyGrid.CaptionForegroundColour`                        See :meth:`~wx.propgrid.PropertyGrid.GetCaptionForegroundColour`
:attr:`~wx.propgrid.PropertyGrid.CellBackgroundColour`                           See :meth:`~wx.propgrid.PropertyGrid.GetCellBackgroundColour` and :meth:`~wx.propgrid.PropertyGrid.SetCellBackgroundColour`
:attr:`~wx.propgrid.PropertyGrid.CellDisabledTextColour`                         See :meth:`~wx.propgrid.PropertyGrid.GetCellDisabledTextColour` and :meth:`~wx.propgrid.PropertyGrid.SetCellDisabledTextColour`
:attr:`~wx.propgrid.PropertyGrid.CellTextColour`                                 See :meth:`~wx.propgrid.PropertyGrid.GetCellTextColour` and :meth:`~wx.propgrid.PropertyGrid.SetCellTextColour`
:attr:`~wx.propgrid.PropertyGrid.ColumnCount`                                    See :meth:`~wx.propgrid.PropertyGrid.GetColumnCount` and :meth:`~wx.propgrid.PropertyGrid.SetColumnCount`
:attr:`~wx.propgrid.PropertyGrid.EditorTextCtrl`                                 See :meth:`~wx.propgrid.PropertyGrid.GetEditorTextCtrl`
:attr:`~wx.propgrid.PropertyGrid.EmptySpaceColour`                               See :meth:`~wx.propgrid.PropertyGrid.GetEmptySpaceColour` and :meth:`~wx.propgrid.PropertyGrid.SetEmptySpaceColour`
:attr:`~wx.propgrid.PropertyGrid.FontHeight`                                     See :meth:`~wx.propgrid.PropertyGrid.GetFontHeight`
:attr:`~wx.propgrid.PropertyGrid.Grid`                                           See :meth:`~wx.propgrid.PropertyGrid.GetGrid`
:attr:`~wx.propgrid.PropertyGrid.ImageSize`                                      See :meth:`~wx.propgrid.PropertyGrid.GetImageSize`
:attr:`~wx.propgrid.PropertyGrid.LabelEditor`                                    See :meth:`~wx.propgrid.PropertyGrid.GetLabelEditor`
:attr:`~wx.propgrid.PropertyGrid.LastItem`                                       See :meth:`~wx.propgrid.PropertyGrid.GetLastItem`
:attr:`~wx.propgrid.PropertyGrid.LineColour`                                     See :meth:`~wx.propgrid.PropertyGrid.GetLineColour` and :meth:`~wx.propgrid.PropertyGrid.SetLineColour`
:attr:`~wx.propgrid.PropertyGrid.MarginColour`                                   See :meth:`~wx.propgrid.PropertyGrid.GetMarginColour` and :meth:`~wx.propgrid.PropertyGrid.SetMarginColour`
:attr:`~wx.propgrid.PropertyGrid.MarginWidth`                                    See :meth:`~wx.propgrid.PropertyGrid.GetMarginWidth`
:attr:`~wx.propgrid.PropertyGrid.Panel`                                          See :meth:`~wx.propgrid.PropertyGrid.GetPanel`
:attr:`~wx.propgrid.PropertyGrid.Root`                                           See :meth:`~wx.propgrid.PropertyGrid.GetRoot`
:attr:`~wx.propgrid.PropertyGrid.RowHeight`                                      See :meth:`~wx.propgrid.PropertyGrid.GetRowHeight`
:attr:`~wx.propgrid.PropertyGrid.ScaleX`                                         See :meth:`~wx.propgrid.PropertyGrid.GetScaleX`
:attr:`~wx.propgrid.PropertyGrid.ScaleY`                                         See :meth:`~wx.propgrid.PropertyGrid.GetScaleY`
:attr:`~wx.propgrid.PropertyGrid.SelectedProperty`                               See :meth:`~wx.propgrid.PropertyGrid.GetSelectedProperty`
:attr:`~wx.propgrid.PropertyGrid.Selection`                                      See :meth:`~wx.propgrid.PropertyGrid.GetSelection` and :meth:`~wx.propgrid.PropertyGrid.SetSelection`
:attr:`~wx.propgrid.PropertyGrid.SelectionBackgroundColour`                      See :meth:`~wx.propgrid.PropertyGrid.GetSelectionBackgroundColour` and :meth:`~wx.propgrid.PropertyGrid.SetSelectionBackgroundColour`
:attr:`~wx.propgrid.PropertyGrid.SelectionForegroundColour`                      See :meth:`~wx.propgrid.PropertyGrid.GetSelectionForegroundColour`
:attr:`~wx.propgrid.PropertyGrid.SplitterPosition`                               See :meth:`~wx.propgrid.PropertyGrid.GetSplitterPosition` and :meth:`~wx.propgrid.PropertyGrid.SetSplitterPosition`
:attr:`~wx.propgrid.PropertyGrid.StatusBar`                                      See :meth:`~wx.propgrid.PropertyGrid.GetStatusBar`
:attr:`~wx.propgrid.PropertyGrid.TargetRect`                                     See :meth:`~wx.propgrid.PropertyGrid.GetTargetRect` and :meth:`~wx.propgrid.PropertyGrid.SetTargetRect`
:attr:`~wx.propgrid.PropertyGrid.TargetWindow`                                   See :meth:`~wx.propgrid.PropertyGrid.GetTargetWindow` and :meth:`~wx.propgrid.PropertyGrid.SetTargetWindow`
:attr:`~wx.propgrid.PropertyGrid.UncommittedPropertyValue`                       See :meth:`~wx.propgrid.PropertyGrid.GetUncommittedPropertyValue`
:attr:`~wx.propgrid.PropertyGrid.UnspecifiedValueAppearance`                     See :meth:`~wx.propgrid.PropertyGrid.GetUnspecifiedValueAppearance` and :meth:`~wx.propgrid.PropertyGrid.SetUnspecifiedValueAppearance`
:attr:`~wx.propgrid.PropertyGrid.UnspecifiedValueText`                           See :meth:`~wx.propgrid.PropertyGrid.GetUnspecifiedValueText`
:attr:`~wx.propgrid.PropertyGrid.VerticalSpacing`                                See :meth:`~wx.propgrid.PropertyGrid.GetVerticalSpacing` and :meth:`~wx.propgrid.PropertyGrid.SetVerticalSpacing`
================================================================================ ================================================================================


|


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


.. class:: wx.propgrid.PropertyGrid(Control, PropertyGridInterface)

   **Possible constructors**::

       PropertyGrid()
       
       PropertyGrid(parent, id=ID_ANY, pos=DefaultPosition, size=DefaultSize,
                    style=PG_DEFAULT_STYLE, name=PropertyGridNameStr)
       
   
   PropertyGrid is a specialized grid for editing properties - in other
   words name = value pairs.



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



      |overload| Overloaded Implementations:

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

      
      **__init__** `(self)`
      
      Two step constructor.                  
      
      Call :meth:`Create`   when this constructor is called to build up the :ref:`wx.propgrid.PropertyGrid`                    
      
      
      
      
      :html:`<hr class="overloadsep" /><br />`

      
      **__init__** `(self, parent, id=ID_ANY, pos=DefaultPosition, size=DefaultSize, style=PG_DEFAULT_STYLE, name=PropertyGridNameStr)`
      
      Constructor.                  
      
      The styles to be used are styles valid for the :ref:`wx.Window`. 
      
                      
      
      
      :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
      
      
      
      
      
      
      .. seealso:: :ref:`PropertyGrid Window Styles <propertygrid window styles>`.   
      
      
      
      
      
      
      
      :html:`<hr class="overloadsep" /><br />`






   .. method:: AddActionTrigger(self, action, keycode, modifiers=0)

      Adds given key combination to trigger given action.                  

      Here is a sample code to make Enter key press move focus to the next property. 

      ::

          propGrid.AddActionTrigger(wx.propgrid.PG_ACTION_NEXT_PROPERTY,
                                    wx.WXK_RETURN)
          propGrid.DedicateKey(wx.WXK_RETURN)






      :param `action`: Which action to trigger. See :ref:`PropertyGrid Action Identifiers <propertygrid action identifiers>`.   
      :type `action`: int
      :param `keycode`: Which keycode triggers the action.   
      :type `keycode`: int
      :param `modifiers`: Which key event modifiers, in addition to keycode, are needed to trigger the action.   
      :type `modifiers`: int








                  





   .. method:: AddToSelection(self, id)

      Adds given property into selection.                  

      If ``PG_EX_MULTIPLE_SELECTION``  extra style is not used, then this has same effect as calling :meth:`SelectProperty` . 

                


      :param `id`: 
      :type `id`: wx.propgrid.PGPropArgCls




      :rtype: `bool`







      .. note:: 

         Multiple selection is not supported for categories. This means that if you have properties selected, you cannot add category to selection, and also if you have category selected, you cannot add other properties to selection. This member function will fail silently in these cases, even returning ``True``.   








   .. method:: AdjustScrollbars(self)






   .. staticmethod:: AutoGetTranslation(enable)

      This static function enables or disables automatic use of :ref:`wx.GetTranslation`  for following strings: :ref:`wx.propgrid.EnumProperty`  list labels, :ref:`wx.propgrid.FlagsProperty`  child property labels.                  

      Default is ``False``.                  


      :param `enable`: 
      :type `enable`: bool







   .. method:: BeginLabelEdit(self, colIndex=0)

      Creates label editor :ref:`wx.TextCtrl`  for given column, for property that is currently selected.                  

      When multiple selection is enabled, this applies to whatever property :meth:`GetSelection`   returns. 




      :param `colIndex`: Which column's label to edit. Note that you should not use value 1, which is reserved for property value column.  
      :type `colIndex`: int




                  



      .. seealso:: :meth:`EndLabelEdit` , :meth:`MakeColumnEditable`     








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



      |overload| Overloaded Implementations:

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

      
      **CalcScrolledPosition** `(self, x, y)`
      
      Translates the logical coordinates to the device ones.                  
      
      For example, if a window is scrolled 10 pixels to the bottom, the device coordinates of the origin are (0, 0) (as always), but the logical coordinates are (0, 10) and so the call to CalcScrolledPosition(0, 10, xx, yy) will return 0 in yy. 
      
      
      
      
      
      :html:`<hr class="overloadsep" /><br />`

      
      **CalcScrolledPosition** `(self, pt)`
      
      
      
      
      :param `pt`: 
      :type `pt`: wx.Point
      
      
      
      
      :rtype: :ref:`wx.Point`
      
      
      
      
      
      
      
      :html:`<hr class="overloadsep" /><br />`






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



      |overload| Overloaded Implementations:

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

      
      **CalcUnscrolledPosition** `(self, x, y)`
      
      Translates the device coordinates to the logical ones.                  
      
      For example, if a window is scrolled 10 pixels to the bottom, the device coordinates of the origin are (0, 0) (as always), but the logical coordinates are (0, 10) and so the call to CalcUnscrolledPosition(0, 0, xx, yy) will return 10 in yy. 
      
      
      
      
      
      :html:`<hr class="overloadsep" /><br />`

      
      **CalcUnscrolledPosition** `(self, pt)`
      
      
      
      
      :param `pt`: 
      :type `pt`: wx.Point
      
      
      
      
      :rtype: :ref:`wx.Point`
      
      
      
      
      
      
      
      :html:`<hr class="overloadsep" /><br />`






   .. method:: CenterSplitter(self, enableAutoResizing=False)

      Centers the splitter.                  




      :param `enableAutoResizing`: If ``True``, automatic column resizing is enabled (only applicable if window style ``PG_SPLITTER_AUTO_CENTER``  is used).   
      :type `enableAutoResizing`: bool




                  





   .. method:: ChangePropertyValue(self, id, newValue)

      Changes value of a property, as if from an editor.                  

      Use this instead of :meth:`SetPropertyValue`   if you need the value to run through validation process, and also send  ``wxEVT_PG_CHANGED`` . 

                


      :param `id`: 
      :type `id`: wx.propgrid.PGPropArgCls
      :param `newValue`: 
      :type `newValue`: PGVariant




      :rtype: `bool`







      :returns: 

         Returns ``True`` if value was successfully changed.   







      .. note:: 

         Since this function sends  ``wxEVT_PG_CHANGED`` , it should not be called from   ``EVT_PG_CHANGED``   handler.  








   .. method:: Clear(self)

      Deletes all properties.                   





   .. method:: ClearActionTriggers(self, action)

      Clears action triggers for given action.                  




      :param `action`: Which action to trigger. :ref:`PropertyGrid Action Identifiers <propertygrid action identifiers>`.   
      :type `action`: int




                  





   .. method:: CommitChangesFromEditor(self, flags=0)

      Forces updating the value of property from the editor control.                  

      Note that  ``wxEVT_PG_CHANGING``   and   ``wxEVT_PG_CHANGED``   are dispatched using ProcessEvent, meaning your event handlers will be called immediately. 

                


      :param `flags`: 
      :type `flags`: wx.int




      :rtype: `bool`







      :returns: 

         Returns ``True`` if anything was changed.   








   .. method:: Create(self, parent, id=ID_ANY, pos=DefaultPosition, size=DefaultSize, style=PG_DEFAULT_STYLE, name=PropertyGridNameStr)

      Two step creation.                  

      Whenever the control is created without any parameters, use Create to actually create it. Don't access the control's public methods before this is called 

                


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







      .. seealso:: :ref:`PropertyGrid Window Styles <propertygrid window styles>`.   








   .. method:: DedicateKey(self, keycode)

      Dedicates a specific keycode to :ref:`wx.propgrid.PropertyGrid`.                  

      This means that such key presses will not be redirected to editor controls. 

      Using this function allows, for example, navigation between properties using arrow keys even when the focus is in the editor control.                  


      :param `keycode`: 
      :type `keycode`: int







   .. method:: DisableKeyboardScrolling(self)

      Disable use of keyboard keys for scrolling.                  

      By default cursor movement keys (including Home, End, Page Up and Down) are used to scroll the window appropriately. If the derived class uses these keys for something else, e.g. changing the currently selected item, this function can be used to disable this behaviour as it's not only not necessary then but can actually be actively harmful if another object forwards a keyboard event corresponding to one of the above keys to us using ProcessWindowEvent() because the event will always be processed which can be undesirable. 

                 



      .. versionadded:: 2.9.1 
     








   .. method:: DoHidePropertyError(self, property)

      Override in derived class to hide an error displayed by :meth:`DoShowPropertyError` .                  

                


      :param `property`: 
      :type `property`: wx.propgrid.PGProperty






      .. seealso:: :meth:`DoShowPropertyError`     








   .. method:: DoOnValidationFailure(self, property, invalidValue)

      Override to customize property validation failure behaviour.                  




      :param `property`: Property with entered an invalid value  
      :type `property`: wx.propgrid.PGProperty
      :param `invalidValue`: Value which failed in validation.  
      :type `invalidValue`: PGVariant








      :rtype: `bool`



                  



      :returns: 

         Return ``True`` if user is allowed to change to another property even if current has invalid value.   








   .. method:: DoOnValidationFailureReset(self, property)

      Override to customize resetting of property validation failure status.                  

                


      :param `property`: 
      :type `property`: wx.propgrid.PGProperty






      .. note:: 

         Property is guaranteed to have flag ``PG_PROP_INVALID_VALUE``  set.   








   .. method:: DoPrepareDC(self, dc)

      Call this function to prepare the device context for drawing a scrolled image.                  

      It sets the device origin according to the current scroll position. :meth:`DoPrepareDC`   is called automatically within the default  ``wxEVT_PAINT``   event handler, so your  :meth:`OnDraw`   override will be passed an already 'pre-scrolled' device context. However, if you wish to draw from outside of :meth:`OnDraw`   (e.g. from your own  ``wxEVT_PAINT``   handler), you must call this function yourself. 

      For example: ::

                  def OnEvent(self, event):

                      dc = wx.ClientDC(self)
                      self.DoPrepareDC(dc)

                      dc.SetPen(wx.BLACK_PEN)

                      x, y = event.GetPosition()

                      if (xpos > -1 and ypos > -1 and event.Dragging()):
                          dc.DrawLine(xpos, ypos, x, y)

                      xpos = x
                      ypos = y



      Notice that the function sets the origin by moving it relatively to the current origin position, so you shouldn't change the origin before calling :meth:`DoPrepareDC`   or, if you do, reset it to (0, 0) later. If you call :meth:`DoPrepareDC`   immediately after device context creation, as in the example above, this problem doesn't arise, of course, so it is customary to do it like this.                  


      :param `dc`: 
      :type `dc`: wx.DC







   .. staticmethod:: DoRegisterEditorClass(editor, name, noDefCheck=False)

      Registers a new editor class.                  

                


      :param `editor`: 
      :type `editor`: wx.propgrid.PGEditor
      :param `name`: 
      :type `name`: string
      :param `noDefCheck`: 
      :type `noDefCheck`: bool




      :rtype: :ref:`wx.propgrid.PGEditor`







      :returns: 

         Returns pointer to the editor class instance that should be used.   








   .. method:: DoShowPropertyError(self, property, msg)

      Override in derived class to display error messages in custom manner (these message usually only result from validation failure).                  

                


      :param `property`: 
      :type `property`: wx.propgrid.PGProperty
      :param `msg`: 
      :type `msg`: string






      .. note:: 

         If you implement this, then you also need to implement :meth:`DoHidePropertyError`   - possibly to do nothing, if error does not need hiding (e.g. it was logged or shown in a message box).  







      .. seealso:: :meth:`DoHidePropertyError`     








   .. method:: DrawItemAndValueRelated(self, p)

      Draws item, children, and consecutive parents as long as category is not met.                  


      :param `p`: 
      :type `p`: wx.propgrid.PGProperty







   .. method:: EditorsValueWasModified(self)

      Call when editor widget's contents is modified.                  

      For example, this is called when changes text in :ref:`wx.TextCtrl`  (used in :ref:`wx.propgrid.StringProperty`  and :ref:`wx.propgrid.IntProperty`). 

                 



      .. note:: 

         This function should only be called by custom properties.  







      .. seealso:: :meth:`wx.propgrid.PGProperty.OnEvent`     








   .. method:: EditorsValueWasNotModified(self)

      Reverse of :meth:`EditorsValueWasModified` .                  

                 



      .. note:: 

         This function should only be called by custom properties.   








   .. method:: EnableCategories(self, enable)

      Enables or disables (shows/hides) categories according to parameter enable.                  

                


      :param `enable`: 
      :type `enable`: bool




      :rtype: `bool`







      .. note:: 

         This functions deselects selected property, if any. Validation failure option ``PG_VFB_STAY_IN_PROPERTY``  is not respected, i.e. selection is cleared even if editor had invalid value.   








   .. method:: EnableScrolling(self, xScrolling, yScrolling)

      Enable or disable use of :meth:`wx.Window.ScrollWindow`   for scrolling.                  

      By default, when a scrolled window is logically scrolled, :meth:`wx.Window.ScrollWindow`   is called on the underlying window which scrolls the window contents and only invalidates the part of the window newly brought into view. If ``False`` is passed as an argument, then this "physical scrolling" is disabled and the window is entirely invalidated whenever it is scrolled by calling :meth:`wx.Window.Refresh` . 

      It should be rarely necessary to disable physical scrolling, so this method shouldn't be called in normal circumstances. 




      :param `xScrolling`: If ``True``, enables physical scrolling in the x direction.   
      :type `xScrolling`: bool
      :param `yScrolling`: If ``True``, enables physical scrolling in the y direction.   
      :type `yScrolling`: bool






                  





   .. method:: EndLabelEdit(self, commit=True)

      Destroys label editor :ref:`wx.TextCtrl`, if any.                  




      :param `commit`: Use ``True`` (default) to store edited label text in property cell data.  
      :type `commit`: bool




                  



      .. seealso:: :meth:`BeginLabelEdit` , :meth:`MakeColumnEditable`     








   .. method:: EnsureVisible(self, id)

      Scrolls and/or expands items to ensure that the given item is visible.                  

                


      :param `id`: 
      :type `id`: wx.propgrid.PGPropArgCls




      :rtype: `bool`







      :returns: 

         Returns ``True`` if something was actually done.   








   .. method:: FitColumns(self)

      Reduces column sizes to minimum possible, while still retaining fully visible grid contents (labels, images).                  

                

      :rtype: :ref:`Size`







      :returns: 

         Minimum size for the grid to still display everything.  







      .. note:: 

         Does not work well with ``PG_SPLITTER_AUTO_CENTER``  window style.   








   .. method:: GetCaptionBackgroundColour(self)

      Returns current category caption background colour.                  

      :rtype: :ref:`Colour`








   .. method:: GetCaptionFont(self)

      Returns current category caption font.                  

      :rtype: :ref:`Font`








   .. method:: GetCaptionForegroundColour(self)

      Returns current category caption text colour.                  

      :rtype: :ref:`Colour`








   .. method:: GetCellBackgroundColour(self)

      Returns current cell background colour.                  

      :rtype: :ref:`Colour`








   .. method:: GetCellDisabledTextColour(self)

      Returns current cell text colour when disabled.                  

      :rtype: :ref:`Colour`








   .. method:: GetCellTextColour(self)

      Returns current cell text colour.                  

      :rtype: :ref:`Colour`








   .. staticmethod:: GetClassDefaultAttributes(variant=WINDOW_VARIANT_NORMAL)




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




      :rtype: :ref:`VisualAttributes`








   .. method:: GetColumnCount(self)

      Returns number of columns currently on grid.                  

      :rtype: `int`








   .. method:: GetEditorTextCtrl(self)

      Returns :ref:`wx.TextCtrl`  active in currently selected property, if any.                  

      Takes :ref:`wx.adv.OwnerDrawnComboBox`  into account.                  

      :rtype: :ref:`TextCtrl`








   .. method:: GetEmptySpaceColour(self)

      Returns colour of empty space below properties.                  

      :rtype: :ref:`Colour`








   .. method:: GetFontHeight(self)

      Returns height of highest characters of used font.                  

      :rtype: `int`








   .. method:: GetGrid(self)

      Returns pointer to itself.                  

      Dummy function that enables same kind of code to use :ref:`wx.propgrid.PropertyGrid`  and :ref:`wx.propgrid.PropertyGridManager`.                  

      :rtype: :ref:`wx.propgrid.PropertyGrid`








   .. method:: GetImageRect(self, property, item)

      Returns rectangle of custom paint image.                  




      :param `property`: Return image rectangle for this property.  
      :type `property`: wx.propgrid.PGProperty
      :param `item`: Which choice of property to use (each choice may have different image).   
      :type `item`: int








      :rtype: :ref:`Rect`



                  





   .. method:: GetImageSize(self, property=None, item=-1)

      Returns size of the custom paint image in front of property.                  




      :param `property`: Return image rectangle for this property. If this argument is ``None``, then preferred size is returned.  
      :type `property`: wx.propgrid.PGProperty
      :param `item`: Which choice of property to use (each choice may have different image).   
      :type `item`: int








      :rtype: :ref:`Size`



                  





   .. method:: GetLabelEditor(self)

      Returns currently active label editor, ``None`` if none.                  

      :rtype: :ref:`TextCtrl`








   .. method:: GetLastItem(self, flags=PG_ITERATE_DEFAULT)

      Returns last item which could be iterated using given flags.                  




      :param `flags`: See :ref:`PropertyGridIterator Flags <propertygriditerator flags>`.   
      :type `flags`: int






      :rtype: :ref:`wx.propgrid.PGProperty`



                  





   .. method:: GetLineColour(self)

      Returns colour of lines between cells.                  

      :rtype: :ref:`Colour`








   .. method:: GetMarginColour(self)

      Returns background colour of margin.                  

      :rtype: :ref:`Colour`








   .. method:: GetMarginWidth(self)

      Returns margin width.                  

      :rtype: `int`








   .. method:: GetPanel(self)

      Returns :ref:`wx.Window`  that the properties are painted on, and which should be used as the parent for editor controls.                  

      :rtype: :ref:`Window`








   .. method:: GetRoot(self)

      Returns "root property".                  

      It does not have name, etc. and it is not visible. It is only useful for accessing its children.                  

      :rtype: :ref:`wx.propgrid.PGProperty`








   .. method:: GetRowHeight(self)

      Returns height of a single grid row (in pixels).                  

      :rtype: `int`








   .. method:: GetScaleX(self)



      :rtype: `float`








   .. method:: GetScaleY(self)



      :rtype: `float`








   .. method:: GetScrollLines(self, orient)




      :param `orient`: 
      :type `orient`: int




      :rtype: `int`








   .. method:: GetScrollPageSize(self, orient)




      :param `orient`: 
      :type `orient`: int




      :rtype: `int`








   .. method:: GetScrollPixelsPerUnit(self)

      Get the number of pixels per scroll unit (line), in each direction, as set by :meth:`SetScrollbars` .                  

      A value of zero indicates no scrolling in that direction. 







      :rtype: `tuple`



      




   .. method:: GetSelectedProperty(self)

      Returns currently selected property.                  

      :rtype: :ref:`wx.propgrid.PGProperty`








   .. method:: GetSelection(self)

      Returns currently selected property.                  

      :rtype: :ref:`wx.propgrid.PGProperty`








   .. method:: GetSelectionBackgroundColour(self)

      Returns current selection background colour.                  

      :rtype: :ref:`Colour`








   .. method:: GetSelectionForegroundColour(self)

      Returns current selection text colour.                  

      :rtype: :ref:`Colour`








   .. method:: GetSizeAvailableForScrollTarget(self, size)

      Function which must be overridden to implement the size available for the scroll target for the given size of the main window.                  

      This method must be overridden if :meth:`SetTargetWindow`   is used (it is never called otherwise). The implementation should decrease the `size`  to account for the size of the non-scrollable parts of the main window and return only the size available for the scrollable window itself. E.g. in the example given in :meth:`SetTargetWindow`   documentation the function would subtract the height of the header window from the vertical component of `size`.                  


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




      :rtype: :ref:`wx.Size`








   .. method:: GetSplitterPosition(self, splitterIndex=0)

      Returns current splitter x position.                  


      :param `splitterIndex`: 
      :type `splitterIndex`: int




      :rtype: `int`








   .. method:: GetStatusBar(self)

      Return :ref:`wx.StatusBar`  that is used by this :ref:`wx.propgrid.PropertyGrid`.                  

      You can reimplement this member function in derived class to override the default behaviour of using the top-level :ref:`wx.Frame`'s status bar, if any.                  

      :rtype: :ref:`StatusBar`








   .. method:: GetTargetRect(self)



      :rtype: :ref:`wx.Rect`








   .. method:: GetTargetWindow(self)



      :rtype: :ref:`wx.Window`








   .. method:: GetUncommittedPropertyValue(self)

      Returns most up-to-date value of selected property.                  

      This will return value different from :meth:`GetSelectedProperty` .GetValue() only when text editor is activate and string edited by user represents valid, uncommitted property value.                  

      :rtype: :ref:`PGVariant`








   .. method:: GetUnspecifiedValueAppearance(self)

      Returns current appearance of unspecified value cells.                  

                

      :rtype: :ref:`wx.propgrid.PGCell`







      .. seealso:: :meth:`SetUnspecifiedValueAppearance`     








   .. method:: GetUnspecifiedValueText(self, argFlags=0)

      Returns (visual) text representation of the unspecified property value.                  




      :param `argFlags`: For internal use only.   
      :type `argFlags`: int






      :rtype: `string`



                  





   .. method:: GetVerticalSpacing(self)

      Returns current vertical spacing.                  

      :rtype: `int`








   .. method:: GetViewStart(self)

      Get the position at which the visible portion of the window starts.                  







      :rtype: `tuple`



      




   .. method:: HitTest(self, pt)

      Returns information about arbitrary position in the grid.                  




      :param `pt`: Coordinates in the virtual grid space. You may need to use :meth:`wx.Scrolled.CalcScrolledPosition`   for translating :ref:`wx.propgrid.PropertyGrid`  client coordinates into something this member function can use.   
      :type `pt`: wx.Point






      :rtype: :ref:`wx.propgrid.PropertyGridHitTestResult`



                  





   .. method:: IsAnyModified(self)

      Returns ``True`` if any property has been modified by the user.                  

      :rtype: `bool`








   .. method:: IsAutoScrolling(self)

      Are we generating the autoscroll events?                  

      :rtype: `bool`








   .. method:: IsEditorFocused(self)

      Returns ``True`` if a property editor control has focus.                  

      :rtype: `bool`








   .. method:: IsEditorsValueModified(self)

      Returns ``True`` if editor's value was marked modified.                  

      :rtype: `bool`








   .. method:: IsFrozen(self)

      Returns ``True`` if updating is frozen (i.e.                  

      :meth:`Freeze`   called but not yet :meth:`Thaw`   ).                  

      :rtype: `bool`








   .. method:: IsRetained(self)

      Motif only: ``True`` if the window has a backing bitmap.                  

      :rtype: `bool`








   .. method:: MakeColumnEditable(self, column, editable=True)

      Makes given column editable by user.                  




      :param `column`: The index of the column to make editable.   
      :type `column`: int
      :param `editable`: Using ``False`` here will disable column from being editable.  
      :type `editable`: bool






      `column`  must not be equal to 1, as the second column is always editable and can be made read-only only on cell-by-cell basis using::

          property.ChangeFlag(wx.propgrid.PG_PROP_READONLY, True)



                 



      .. seealso:: :meth:`BeginLabelEdit` , :meth:`EndLabelEdit`     








   .. method:: OnDraw(self, dc)

      Called by the default paint event handler to allow the application to define painting behaviour without having to worry about calling :meth:`DoPrepareDC` .                  

      Instead of overriding this function you may also just process the paint event in the derived class as usual, but then you will have to call :meth:`DoPrepareDC`   yourself.                  


      :param `dc`: 
      :type `dc`: wx.DC







   .. method:: OnTLPChanging(self, newTLP)

      It is recommended that you call this function any time your code causes :ref:`wx.propgrid.PropertyGrid`'s top-level parent to change.                  

      :ref:`wx.propgrid.PropertyGrid`'s OnIdle() handler should be able to detect most changes, but it is not perfect. 




      :param `newTLP`: New top-level parent that is about to be set. Old top-level parent window should still exist as the current one.  
      :type `newTLP`: wx.Window




                  



      .. note:: 

         This function is automatically called from :ref:`wx.propgrid.PropertyGrid`:: :meth:`Reparent`   and :meth:`wx.propgrid.PropertyGridManager.Reparent` . You only need to use it if you reparent :ref:`wx.propgrid.PropertyGrid`  indirectly.   








   .. method:: PrepareDC(self, dc)

      This function is for backwards compatibility only and simply calls :meth:`DoPrepareDC`   now.                  

      Notice that it is not called by the default paint event handle (:meth:`DoPrepareDC`   is), so overriding this method in your derived class is useless.                  


      :param `dc`: 
      :type `dc`: wx.DC







   .. method:: RefreshEditor(self)

      Refreshes any active editor control.                   





   .. method:: RefreshProperty(self, p)

      Redraws given property.                  


      :param `p`: 
      :type `p`: wx.propgrid.PGProperty







   .. staticmethod:: RegisterEditorClass(editor, noDefCheck=False)

      Forwards to DoRegisterEditorClass with empty name.                  


      :param `editor`: 
      :type `editor`: wx.propgrid.PGEditor
      :param `noDefCheck`: 
      :type `noDefCheck`: bool




      :rtype: :ref:`wx.propgrid.PGEditor`








   .. method:: RemoveFromSelection(self, id)

      Removes given property from selection.                  

      If property is not selected, an assertion failure will occur.                  


      :param `id`: 
      :type `id`: wx.propgrid.PGPropArgCls




      :rtype: `bool`








   .. method:: ResetColours(self)

      Resets all colours to the original system values.                   





   .. method:: ResetColumnSizes(self, enableAutoResizing=False)

      Resets column sizes and splitter positions, based on proportions.                  




      :param `enableAutoResizing`: If ``True``, automatic column resizing is enabled (only applicable if window style ``PG_SPLITTER_AUTO_CENTER``  is used).  
      :type `enableAutoResizing`: bool




                  



      .. seealso:: :meth:`wx.propgrid.PropertyGridInterface.SetColumnProportion`     








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



      |overload| Overloaded Implementations:

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

      
      **Scroll** `(self, x, y)`
      
      Scrolls a window so the view start is at the given point.                  
      
      
      
      
      :param `x`: The x position to scroll to, in scroll units.   
      :type `x`: int
      :param `y`: The y position to scroll to, in scroll units.  
      :type `y`: int
      
      
      
      
      
      
                        
      
      
      
      .. note:: 
      
         The positions are in scroll units, not pixels, so to convert to pixels you will have to multiply by the number of pixels per scroll increment. If either parameter is :ref:`wx.DefaultCoord`  (-1), that position will be ignored (no change in that direction).  
      
      
      
      
      
      
      
      .. seealso:: :meth:`SetScrollbars` , :meth:`GetScrollPixelsPerUnit`     
      
      
      
      
      
      
      
      :html:`<hr class="overloadsep" /><br />`

      
      **Scroll** `(self, pt)`
      
      This is an overload of :meth:`Scroll` ; see that function for more info.                  
      
      
      :param `pt`: 
      :type `pt`: wx.Point
      
      
      
      
      
      
      :html:`<hr class="overloadsep" /><br />`






   .. method:: SelectProperty(self, id, focus=False)

      Selects a property.                  

      Editor widget is automatically created, but not focused unless focus is ``True``. 




      :param `id`: Property to select (name or pointer).  
      :type `id`: wx.propgrid.PGPropArgCls
      :param `focus`: If ``True``, move keyboard focus to the created editor right away.  
      :type `focus`: bool








      :rtype: `bool`



                  



      :returns: 

         returns ``True`` if selection finished successfully. Usually only fails if current value in editor is not valid.  







      .. note:: 

         In wxWidgets 2.9 and later, this function no longer sends  ``wxEVT_PG_SELECTED`` .  







      .. note:: 

         This clears any previous selection.  







      .. seealso:: :meth:`wx.propgrid.PropertyGridInterface.ClearSelection`     








   .. method:: SendAutoScrollEvents(self, event)

      This method can be overridden in a derived class to forbid sending the auto scroll events - note that unlike :meth:`StopAutoScrolling`   it doesn't stop the timer, so it will be called repeatedly and will typically return different values depending on the current mouse position.                  

      The base class version just returns ``True``.                  


      :param `event`: 
      :type `event`: wx.ScrollWinEvent




      :rtype: `bool`








   .. method:: SetCaptionBackgroundColour(self, col)

      Sets category caption background colour.                  


      :param `col`: 
      :type `col`: wx.Colour







   .. method:: SetCaptionTextColour(self, col)

      Sets category caption text colour.                  


      :param `col`: 
      :type `col`: wx.Colour







   .. method:: SetCellBackgroundColour(self, col)

      Sets default cell background colour - applies to property cells.                  

      Note that appearance of editor widgets may not be affected.                  


      :param `col`: 
      :type `col`: wx.Colour







   .. method:: SetCellDisabledTextColour(self, col)

      Sets cell text colour for disabled properties.                  


      :param `col`: 
      :type `col`: wx.Colour







   .. method:: SetCellTextColour(self, col)

      Sets default cell text colour - applies to property name and value text.                  

      Note that appearance of editor widgets may not be affected.                  


      :param `col`: 
      :type `col`: wx.Colour







   .. method:: SetColumnCount(self, colCount)

      Set number of columns (2 or more).                  


      :param `colCount`: 
      :type `colCount`: int







   .. method:: SetCurrentCategory(self, id)

      Sets the 'current' category - Append will add non-category properties under it.                  


      :param `id`: 
      :type `id`: wx.propgrid.PGPropArgCls







   .. method:: SetEmptySpaceColour(self, col)

      Sets colour of empty space below properties.                  


      :param `col`: 
      :type `col`: wx.Colour







   .. method:: SetLineColour(self, col)

      Sets colour of lines between cells.                  


      :param `col`: 
      :type `col`: wx.Colour







   .. method:: SetMarginColour(self, col)

      Sets background colour of margin.                  


      :param `col`: 
      :type `col`: wx.Colour







   .. method:: SetScale(self, xs, ys)




      :param `xs`: 
      :type `xs`: float
      :param `ys`: 
      :type `ys`: float







   .. method:: SetScrollPageSize(self, orient, pageSize)




      :param `orient`: 
      :type `orient`: int
      :param `pageSize`: 
      :type `pageSize`: int







   .. method:: SetScrollRate(self, xstep, ystep)

      Set the horizontal and vertical scrolling increment only.                  

      See the pixelsPerUnit parameter in :meth:`SetScrollbars` .                  


      :param `xstep`: 
      :type `xstep`: int
      :param `ystep`: 
      :type `ystep`: int







   .. method:: SetScrollbars(self, pixelsPerUnitX, pixelsPerUnitY, noUnitsX, noUnitsY, xPos=0, yPos=0, noRefresh=False)

      Sets up vertical and/or horizontal scrollbars.                  

      The first pair of parameters give the number of pixels per 'scroll step', i.e. amount moved when the up or down scroll arrows are pressed. The second pair gives the length of scrollbar in scroll steps, which sets the size of the virtual window. 

      `xPos`  and `yPos`  optionally specify a position to scroll to immediately. 

      For example, the following gives a window horizontal and vertical scrollbars with 20 pixels per scroll step, and a size of 50 steps (1000 pixels) in each direction: ::

                  window.SetScrollbars(20, 20, 50, 50)



      :ref:`wx.Scrolled`  manages the page size itself, using the current client window size as the page size. 

      Note that for more sophisticated scrolling applications, for example where scroll steps may be variable according to the position in the document, it will be necessary to derive a new class from :ref:`wx.Window`, overriding OnSize() and adjusting the scrollbars appropriately. 




      :param `pixelsPerUnitX`: Pixels per scroll unit in the horizontal direction.   
      :type `pixelsPerUnitX`: int
      :param `pixelsPerUnitY`: Pixels per scroll unit in the vertical direction.   
      :type `pixelsPerUnitY`: int
      :param `noUnitsX`: Number of units in the horizontal direction.   
      :type `noUnitsX`: int
      :param `noUnitsY`: Number of units in the vertical direction.   
      :type `noUnitsY`: int
      :param `xPos`: Position to initialize the scrollbars in the horizontal direction, in scroll units.   
      :type `xPos`: int
      :param `yPos`: Position to initialize the scrollbars in the vertical direction, in scroll units.   
      :type `yPos`: int
      :param `noRefresh`: Will not refresh window if ``True``.  
      :type `noRefresh`: bool
















                  



      .. seealso:: :meth:`wx.Window.SetVirtualSize`     








   .. method:: SetSelection(self, newSelection)

      Set entire new selection from given list of properties.                  


      :param `newSelection`: 
      :type `newSelection`: ArrayPGProperty







   .. method:: SetSelectionBackgroundColour(self, col)

      Sets selection background colour - applies to selected property name background.                  


      :param `col`: 
      :type `col`: wx.Colour







   .. method:: SetSelectionTextColour(self, col)

      Sets selection foreground colour - applies to selected property name text.                  


      :param `col`: 
      :type `col`: wx.Colour







   .. method:: SetSplitterLeft(self, privateChildrenToo=False)

      Moves splitter as left as possible, while still allowing all labels to be shown in full.                  




      :param `privateChildrenToo`: If ``False``, will still allow private children to be cropped.   
      :type `privateChildrenToo`: bool




                  





   .. method:: SetSplitterPosition(self, newxpos, col=0)

      Sets x coordinate of the splitter.                  

                


      :param `newxpos`: 
      :type `newxpos`: int
      :param `col`: 
      :type `col`: int






      .. note:: 

         Splitter position cannot exceed grid size, and therefore setting it during form creation may fail as initial grid size is often smaller than desired splitter position, especially when sizers are being used.   








   .. method:: SetTargetRect(self, rect)




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







   .. method:: SetTargetWindow(self, window)

      Call this function to tell :ref:`wx.Scrolled`  to perform the actual scrolling on a different window (and not on itself).                  

      This method is useful when only a part of the window should be scrolled. A typical example is a control consisting of a fixed header and the scrollable contents window: the scrollbars are attached to the main window itself, hence it, and not the contents window must be derived from :ref:`wx.Scrolled`, but only the contents window scrolls when the scrollbars are used. To implement such setup, you need to call this method with the contents window as argument. 

      Notice that if this method is used, :meth:`GetSizeAvailableForScrollTarget`   method must be overridden.                  


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







   .. method:: SetUnspecifiedValueAppearance(self, cell)

      Sets appearance of value cells representing an unspecified property value.                  

      Default appearance is blank. 

                


      :param `cell`: 
      :type `cell`: wx.propgrid.PGCell






      .. note:: 

         If you set the unspecified value to have any textual representation, then that will override "InlineHelp" attribute.  







      .. seealso:: :meth:`wx.propgrid.PGProperty.SetValueToUnspecified` , :meth:`wx.propgrid.PGProperty.IsValueUnspecified`     








   .. method:: SetVerticalSpacing(self, vspacing)

      Sets vertical spacing.                  

      Can be 1, 2, or 3 - a value relative to font height. Value of 2 should be default on most platforms.                  


      :param `vspacing`: 
      :type `vspacing`: int







   .. method:: SetVirtualWidth(self, width)

      Set virtual width for this particular page.                  

      Width -1 indicates that the virtual width should be disabled.                  


      :param `width`: 
      :type `width`: int







   .. method:: SetupTextCtrlValue(self, text)

      Must be called in :meth:`wx.propgrid.PGEditor.CreateControls`   if primary editor window is :ref:`wx.TextCtrl`, just before textctrl is created.                  




      :param `text`: Initial text value of created :ref:`wx.TextCtrl`.   
      :type `text`: string




                  





   .. method:: ShouldScrollToChildOnFocus(self, child)

      This method can be overridden in a derived class to prevent scrolling the child window into view automatically when it gets focus.                  

      The default behaviour is to scroll this window to show its currently focused child automatically, to ensure that the user can interact with it. This is usually helpful, but can be undesirable for some windows, in which case this method can be overridden to return ``False`` for them to prevent any scrolling from taking place when such windows get focus. 

                


      :param `child`: 
      :type `child`: wx.Window




      :rtype: `bool`







      .. versionadded:: 4.1/wxWidgets-3.1.3  
     








   .. method:: ShowPropertyError(self, id, msg)

      Shows an brief error message that is related to a property.                  


      :param `id`: 
      :type `id`: wx.propgrid.PGPropArgCls
      :param `msg`: 
      :type `msg`: string







   .. method:: ShowScrollbars(self, horz, vert)

      Set the scrollbar visibility.                  

      By default the scrollbar in the corresponding direction is only shown if it is needed, i.e. if the virtual size of the scrolled window in this direction is greater than the current physical window size. Using this function the scrollbar visibility can be changed to be:

      - ``wx.SHOW_SB_ALWAYS``: To always show the scrollbar, even if it is not needed currently (wx``wx.ALWAYS_SHOW_SB`` style can be used during the window creation to achieve the same effect but it applies in both directions). 
      - ``wx.SHOW_SB_NEVER``: To never show the scrollbar at all. In this case the program should presumably provide some other way for the user to scroll the window. 
      - ``wx.SHOW_SB_DEFAULT``: To restore the default behaviour described above. 




      Note that the window must be created before calling this method. 




      :param `horz`: The desired visibility for the horizontal scrollbar.   
      :type `horz`: wx.ScrollbarVisibility
      :param `vert`: The desired visibility for the vertical scrollbar.  
      :type `vert`: wx.ScrollbarVisibility






                  



      .. versionadded:: 2.9.0 
     








   .. method:: StopAutoScrolling(self)

      Stop generating the scroll events when mouse is held outside the window.                   





   .. method:: UnfocusEditor(self)

      Unfocuses or closes editor if one was open, but does not deselect property.                  

      :rtype: `bool`








   .. method:: ValueChangeInEvent(self, variant)

      Call this from :meth:`wx.propgrid.PGProperty.OnEvent`   to cause property value to be changed after the function returns (with ``True`` as return value).                  

      :meth:`ValueChangeInEvent`   must be used if you wish the application to be able to use wxEVT_PG_CHANGING to potentially veto the given value.                  


      :param `variant`: 
      :type `variant`: PGVariant







   .. method:: WasValueChangedInEvent(self)

      You can use this member function, for instance, to detect in :meth:`wx.propgrid.PGProperty.OnEvent`   if :meth:`wx.propgrid.PGProperty.SetValueInEvent`   was already called in :meth:`wx.propgrid.PGEditor.OnEvent` .                  

      It really only detects if was value was changed using :meth:`wx.propgrid.PGProperty.SetValueInEvent` , which is usually used when a 'picker' dialog is displayed. If value was written by "normal means" in :meth:`wx.propgrid.PGProperty.StringToValue`   or IntToValue(), then this function will return ``False`` (on the other hand, :meth:`wx.propgrid.PGProperty.OnEvent`   is not even called in those cases).                  

      :rtype: `bool`








   .. attribute:: CaptionBackgroundColour

      See :meth:`~wx.propgrid.PropertyGrid.GetCaptionBackgroundColour` and :meth:`~wx.propgrid.PropertyGrid.SetCaptionBackgroundColour`


   .. attribute:: CaptionFont

      See :meth:`~wx.propgrid.PropertyGrid.GetCaptionFont`


   .. attribute:: CaptionForegroundColour

      See :meth:`~wx.propgrid.PropertyGrid.GetCaptionForegroundColour`


   .. attribute:: CellBackgroundColour

      See :meth:`~wx.propgrid.PropertyGrid.GetCellBackgroundColour` and :meth:`~wx.propgrid.PropertyGrid.SetCellBackgroundColour`


   .. attribute:: CellDisabledTextColour

      See :meth:`~wx.propgrid.PropertyGrid.GetCellDisabledTextColour` and :meth:`~wx.propgrid.PropertyGrid.SetCellDisabledTextColour`


   .. attribute:: CellTextColour

      See :meth:`~wx.propgrid.PropertyGrid.GetCellTextColour` and :meth:`~wx.propgrid.PropertyGrid.SetCellTextColour`


   .. attribute:: ColumnCount

      See :meth:`~wx.propgrid.PropertyGrid.GetColumnCount` and :meth:`~wx.propgrid.PropertyGrid.SetColumnCount`


   .. attribute:: EditorTextCtrl

      See :meth:`~wx.propgrid.PropertyGrid.GetEditorTextCtrl`


   .. attribute:: EmptySpaceColour

      See :meth:`~wx.propgrid.PropertyGrid.GetEmptySpaceColour` and :meth:`~wx.propgrid.PropertyGrid.SetEmptySpaceColour`


   .. attribute:: FontHeight

      See :meth:`~wx.propgrid.PropertyGrid.GetFontHeight`


   .. attribute:: Grid

      See :meth:`~wx.propgrid.PropertyGrid.GetGrid`


   .. attribute:: ImageSize

      See :meth:`~wx.propgrid.PropertyGrid.GetImageSize`


   .. attribute:: LabelEditor

      See :meth:`~wx.propgrid.PropertyGrid.GetLabelEditor`


   .. attribute:: LastItem

      See :meth:`~wx.propgrid.PropertyGrid.GetLastItem`


   .. attribute:: LineColour

      See :meth:`~wx.propgrid.PropertyGrid.GetLineColour` and :meth:`~wx.propgrid.PropertyGrid.SetLineColour`


   .. attribute:: MarginColour

      See :meth:`~wx.propgrid.PropertyGrid.GetMarginColour` and :meth:`~wx.propgrid.PropertyGrid.SetMarginColour`


   .. attribute:: MarginWidth

      See :meth:`~wx.propgrid.PropertyGrid.GetMarginWidth`


   .. attribute:: Panel

      See :meth:`~wx.propgrid.PropertyGrid.GetPanel`


   .. attribute:: Root

      See :meth:`~wx.propgrid.PropertyGrid.GetRoot`


   .. attribute:: RowHeight

      See :meth:`~wx.propgrid.PropertyGrid.GetRowHeight`


   .. attribute:: ScaleX

      See :meth:`~wx.propgrid.PropertyGrid.GetScaleX`


   .. attribute:: ScaleY

      See :meth:`~wx.propgrid.PropertyGrid.GetScaleY`


   .. attribute:: SelectedProperty

      See :meth:`~wx.propgrid.PropertyGrid.GetSelectedProperty`


   .. attribute:: Selection

      See :meth:`~wx.propgrid.PropertyGrid.GetSelection` and :meth:`~wx.propgrid.PropertyGrid.SetSelection`


   .. attribute:: SelectionBackgroundColour

      See :meth:`~wx.propgrid.PropertyGrid.GetSelectionBackgroundColour` and :meth:`~wx.propgrid.PropertyGrid.SetSelectionBackgroundColour`


   .. attribute:: SelectionForegroundColour

      See :meth:`~wx.propgrid.PropertyGrid.GetSelectionForegroundColour`


   .. attribute:: SplitterPosition

      See :meth:`~wx.propgrid.PropertyGrid.GetSplitterPosition` and :meth:`~wx.propgrid.PropertyGrid.SetSplitterPosition`


   .. attribute:: StatusBar

      See :meth:`~wx.propgrid.PropertyGrid.GetStatusBar`


   .. attribute:: TargetRect

      See :meth:`~wx.propgrid.PropertyGrid.GetTargetRect` and :meth:`~wx.propgrid.PropertyGrid.SetTargetRect`


   .. attribute:: TargetWindow

      See :meth:`~wx.propgrid.PropertyGrid.GetTargetWindow` and :meth:`~wx.propgrid.PropertyGrid.SetTargetWindow`


   .. attribute:: UncommittedPropertyValue

      See :meth:`~wx.propgrid.PropertyGrid.GetUncommittedPropertyValue`


   .. attribute:: UnspecifiedValueAppearance

      See :meth:`~wx.propgrid.PropertyGrid.GetUnspecifiedValueAppearance` and :meth:`~wx.propgrid.PropertyGrid.SetUnspecifiedValueAppearance`


   .. attribute:: UnspecifiedValueText

      See :meth:`~wx.propgrid.PropertyGrid.GetUnspecifiedValueText`


   .. attribute:: VerticalSpacing

      See :meth:`~wx.propgrid.PropertyGrid.GetVerticalSpacing` and :meth:`~wx.propgrid.PropertyGrid.SetVerticalSpacing`

