.. wxPython Phoenix documentation This file was generated by Phoenix's sphinx generator and associated tools, do not edit by hand. Copyright: (c) 2011-2017 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 `. |phoenix_title| Window Styles ============================= See :ref:`PropertyGrid Window Styles `. |phoenix_title| Event Handling ============================== To process input from a property grid control, use these event handler macros to direct input to member functions that take a :ref:`wx.propgrid.PropertyGridEvent` argument. .. _PropertyGrid-events: |events| Events Emitted by this Class ===================================== Handlers bound for the following event types will receive one of the :ref:`wx.propgrid.PropertyGridEvent` parameters. - ``EVT_PG_SELECTED`` : Respond to ``wxEVT_PG_SELECTED`` event, generated when a property selection has been changed, either by user action or by indirect program function. For instance, collapsing a parent property programmatically causes any selected child property to become unselected, and may therefore cause this event to be generated. - EVT_PG_CHANGED: Respond to ``wxEVT_PG_CHANGED`` event, generated when property value has been changed by the user. - EVT_PG_CHANGING: Respond to ``wxEVT_PG_CHANGING`` event, generated when property value is about to be changed by user. Use `PropertyGridEvent.GetValue()` to take a peek at the pending value, and :meth:`wx.propgrid.PropertyGridEvent.Veto` to prevent change from taking place, if necessary. - EVT_PG_HIGHLIGHTED: Respond to ``wxEVT_PG_HIGHLIGHTED`` event, which occurs when mouse moves over a property. Event's property is ``None`` if hovered area does not belong to any property. - EVT_PG_RIGHT_CLICK: Respond to ``wxEVT_PG_RIGHT_CLICK`` event, which occurs when property is clicked on with right mouse button. - EVT_PG_DOUBLE_CLICK: Respond to ``wxEVT_PG_DOUBLE_CLICK`` event, which occurs when property is double-clicked on with left mouse button. - EVT_PG_ITEM_COLLAPSED: Respond to ``wxEVT_PG_ITEM_COLLAPSED`` event, generated when user collapses a property or category. - EVT_PG_ITEM_EXPANDED: Respond to ``wxEVT_PG_ITEM_EXPANDED`` event, generated when user expands a property or category. - EVT_PG_LABEL_EDIT_BEGIN: Respond to ``wxEVT_PG_LABEL_EDIT_BEGIN`` event, generated when user is about to begin editing a property label. You can veto this event to prevent the action. - EVT_PG_LABEL_EDIT_ENDING: Respond to ``wxEVT_PG_LABEL_EDIT_ENDING`` event, generated when user is about to end editing of a property label. You can veto this event to prevent the action. - EVT_PG_COL_BEGIN_DRAG: Respond to ``wxEVT_PG_COL_BEGIN_DRAG`` event, generated when user starts resizing a column - can be vetoed. - ``EVT_PG_COL_DRAGGING``, : Respond to ``wxEVT_PG_COL_DRAGGING`` , event, generated when a column resize by user is in progress. This event is also generated when user double-clicks the splitter in order to recenter it. - EVT_PG_COL_END_DRAG: Respond to ``wxEVT_PG_COL_END_DRAG`` event, generated after column resize by user has finished. .. 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
Inheritance diagram for class PropertyGrid:

| |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.AutoGetTranslation` This static function enables or disables automatic use of `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.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.DoHidePropertyError` Override in derived class to hide an error displayed by :meth:`~PropertyGrid.DoShowPropertyError` . :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.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.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.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.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.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.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.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.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.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 (ie. :meth:`~wx.propgrid.PropertyGrid.MakeColumnEditable` Makes given column editable by user. :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.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.SelectProperty` Selects a property. :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.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.SetUnspecifiedValueAppearance` Sets appearance of value cells representing an unspecified property value. :meth:`~wx.propgrid.PropertyGrid.SetVerticalSpacing` Sets vertical spacing. :meth:`~wx.propgrid.PropertyGrid.ShowPropertyError` Shows an brief error message that is related to a property. :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.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.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.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: **~~~** **__init__** `(self)` Two step constructor. Call :meth:`Create` when this constructor is called to build up the :ref:`wx.propgrid.PropertyGrid` **~~~** **__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 `. **~~~** .. 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 `. :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 ``wx.propgrid.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``. .. staticmethod:: AutoGetTranslation(enable) This static function enables or disables automatic use of `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:: CenterSplitter(self, enableAutoResizing=False) Centers the splitter. :param `enableAutoResizing`: If ``True``, automatic column resizing is enabled (only applicapple if window style ``wx.propgrid.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:`~wx.propgrid.PropertyGridInterface.SetPropertyValue` if you need the value to run through validation process, and also send the property change event. :param `id`: :type `id`: wx.propgrid.PGPropArgCls :param `newValue`: :type `newValue`: PGVariant :rtype: `bool` :returns: Returns ``True`` if value was successfully changed. .. 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 `. :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 `. .. 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:: 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` .. 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:: 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 ``wx.propgrid.PG_VFB_STAY_IN_PROPERTY`` is not respected, ie. selection is cleared even if editor had invalid value. .. 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: `Size` :returns: Minimum size for the grid to still display everything. .. note:: Does not work well with ``wx.propgrid.PG_SPLITTER_AUTO_CENTER`` window style. .. method:: GetCaptionBackgroundColour(self) Returns current category caption background colour. :rtype: `Colour` .. method:: GetCaptionFont(self) Returns current category caption font. :rtype: `Font` .. method:: GetCaptionForegroundColour(self) Returns current category caption text colour. :rtype: `Colour` .. method:: GetCellBackgroundColour(self) Returns current cell background colour. :rtype: `Colour` .. method:: GetCellDisabledTextColour(self) Returns current cell text colour when disabled. :rtype: `Colour` .. method:: GetCellTextColour(self) Returns current cell text colour. :rtype: `Colour` .. 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: `TextCtrl` .. method:: GetEmptySpaceColour(self) Returns colour of empty space below properties. :rtype: `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: `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: `Size` .. method:: GetLabelEditor(self) Returns currently active label editor, ``None`` if none. :rtype: `TextCtrl` .. method:: GetLastItem(self, flags=PG_ITERATE_DEFAULT) Returns last item which could be iterated using given flags. :param `flags`: See :ref:`PropertyGridIterator Flags `. :type `flags`: int :rtype: :ref:`wx.propgrid.PGProperty` .. method:: GetLineColour(self) Returns colour of lines between cells. :rtype: `Colour` .. method:: GetMarginColour(self) Returns background colour of margin. :rtype: `Colour` .. 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: `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:: 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: `Colour` .. method:: GetSelectionForegroundColour(self) Returns current selection text colour. :rtype: `Colour` .. 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: `StatusBar` .. 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: `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:: 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:: 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 (ie. :meth:`Freeze` called but not yet :meth:`Thaw` ). :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:: 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:: 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 applicapple if window style ``wx.propgrid.PG_SPLITTER_AUTO_CENTER`` is used). :type `enableAutoResizing`: bool .. seealso:: :meth:`wx.propgrid.PropertyGridInterface.SetColumnProportion` .. 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 :ref:`wx.propgrid.PropertyGrid` 1.4, this member function used to generate ``wxEVT_PG_SELECTED`` . In wxWidgets 2.9 and later, it no longer does that. .. note:: This clears any previous selection. .. seealso:: :meth:`wx.propgrid.PropertyGridInterface.ClearSelection` .. 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:: 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:: 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:: 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:: 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:: Panel See :meth:`~wx.propgrid.PropertyGrid.GetPanel` .. attribute:: Root See :meth:`~wx.propgrid.PropertyGrid.GetRoot` .. attribute:: RowHeight See :meth:`~wx.propgrid.PropertyGrid.GetRowHeight` .. 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:: 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`