.. 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.PropertyGridManager: ========================================================================================================================================== |phoenix_title| **wx.propgrid.PropertyGridManager** ========================================================================================================================================== :ref:`wx.propgrid.PropertyGridManager` is an efficient multi-page version of :ref:`wx.propgrid.PropertyGrid`, which can optionally have toolbar for mode and page selection, a help text box, and a header. :ref:`wx.propgrid.PropertyGridManager` inherits from :ref:`wx.propgrid.PropertyGridInterface`, and as such it has most property manipulation functions. However, only some of them affect properties on all pages (e.g. :meth:`~wx.propgrid.PropertyGridInterface.GetPropertyByName` and :meth:`~wx.propgrid.PropertyGridInterface.ExpandAll` while some (e.g. :meth:`~wx.propgrid.PropertyGridInterface.Append` only apply to the currently selected page. To operate explicitly on properties on specific page, use :meth:`wx.propgrid.PropertyGridManager.GetPage` to obtain pointer to page's :ref:`wx.propgrid.PropertyGridPage` object. Visual methods, such as SetCellBackgroundColour() are only available in :ref:`wx.propgrid.PropertyGrid`. Use :meth:`wx.propgrid.PropertyGridManager.GetGrid` to obtain pointer to it. Non-virtual iterators will not work in :ref:`wx.propgrid.PropertyGridManager`. Instead, you must acquire the internal grid ( :meth:`~wx.propgrid.PropertyGridManager.GetGrid`) or :ref:`wx.propgrid.PropertyGridPage` object ( :meth:`~wx.propgrid.PropertyGridManager.GetPage`). :ref:`wx.propgrid.PropertyGridManager` constructor has exact same format as :ref:`wx.propgrid.PropertyGrid` constructor, and basically accepts same extra window style flags (albeit also has some extra ones). Here's some example code for creating and populating a :ref:`wx.propgrid.PropertyGridManager`: :: pgMan = wx.propgrid.PropertyGridManager( parent, PGID, # These and other similar styles are automatically # passed to the embedded wx.PropertyGrid. style = wx.PG_BOLD_MODIFIED|wx.PG_SPLITTER_AUTO_CENTER| # Include toolbar. wx.PG_TOOLBAR | # Include description box. wx.PG_DESCRIPTION | # Include compactor. wx.PG_COMPACTOR | # Plus defaults. wx.PGMAN_DEFAULT_STYLE ) page = pgMan.AddPage("First Page") page.Append(wx.propgrid.PropertyCategory("Category A1")) page.Append(wx.propgrid.IntProperty("Number", wx.propgrid.PG_LABEL, 1)) page.Append(wx.propgrid.ColourProperty("Colour",wx.propgrid.PG_LABEL, wx.WHITE)) page = pgMan.AddPage("Second Page") page.Append("Text", wx.propgrid.PG_LABEL, "(no text)") page.Append(wx.propgrid.FontProperty("Font",wx.propgrid.PG_LABEL)) # Display a header above the grid pgMan.ShowHeader() |phoenix_title| Window Styles ============================= See :ref:`PropertyGrid Window Styles `. |phoenix_title| Event Handling ============================== See :ref:`PropertyGrid Event Handling ` for more information. | |class_hierarchy| Class Hierarchy ================================= .. raw:: html
Inheritance diagram for class PropertyGridManager:
| |method_summary| Methods Summary ================================ ================================================================================ ================================================================================ :meth:`~wx.propgrid.PropertyGridManager.__init__` Two step constructor. :meth:`~wx.propgrid.PropertyGridManager.AddPage` Creates new property page. :meth:`~wx.propgrid.PropertyGridManager.Clear` Deletes all properties and all pages. :meth:`~wx.propgrid.PropertyGridManager.ClearPage` Deletes all properties on given page. :meth:`~wx.propgrid.PropertyGridManager.CommitChangesFromEditor` Forces updating the value of property from the editor control. :meth:`~wx.propgrid.PropertyGridManager.Create` Two step creation. :meth:`~wx.propgrid.PropertyGridManager.CreatePropertyGrid` Creates property grid for the manager. :meth:`~wx.propgrid.PropertyGridManager.EnableCategories` Enables or disables (shows/hides) categories according to parameter enable. :meth:`~wx.propgrid.PropertyGridManager.EnsureVisible` Selects page, scrolls and/or expands items to ensure that the given item is visible. :meth:`~wx.propgrid.PropertyGridManager.GetClassDefaultAttributes` :meth:`~wx.propgrid.PropertyGridManager.GetColumnCount` Returns number of columns on given page. :meth:`~wx.propgrid.PropertyGridManager.GetCurrentPage` Returns currently selected page. :meth:`~wx.propgrid.PropertyGridManager.GetDescBoxHeight` Returns height of the description text box. :meth:`~wx.propgrid.PropertyGridManager.GetGrid` Returns pointer to the contained :ref:`wx.propgrid.PropertyGrid`. :meth:`~wx.propgrid.PropertyGridManager.GetPage` Returns page object for given page index. :meth:`~wx.propgrid.PropertyGridManager.GetPageByName` Returns index for a page name. :meth:`~wx.propgrid.PropertyGridManager.GetPageByState` Returns index for a relevant propertygrid state. :meth:`~wx.propgrid.PropertyGridManager.GetPageCount` Returns number of managed pages. :meth:`~wx.propgrid.PropertyGridManager.GetPageName` Returns name of given page. :meth:`~wx.propgrid.PropertyGridManager.GetPageRoot` Returns "root property" of the given page. :meth:`~wx.propgrid.PropertyGridManager.GetSelectedPage` Returns index to currently selected page. :meth:`~wx.propgrid.PropertyGridManager.GetSelectedProperty` Alias for :meth:`~PropertyGridManager.GetSelection` . :meth:`~wx.propgrid.PropertyGridManager.GetSelection` Shortcut for :meth:`~PropertyGridManager.GetGrid` . :meth:`~PropertyGridManager.GetSelection` . :meth:`~wx.propgrid.PropertyGridManager.GetToolBar` Returns a pointer to the toolbar currently associated with the :ref:`wx.propgrid.PropertyGridManager` (if any). :meth:`~wx.propgrid.PropertyGridManager.GetVIterator` Similar to :meth:`~PropertyGridManager.GetIterator` , but instead returns :ref:`wx.propgrid.PGVIterator` instance, which can be useful for forward-iterating through arbitrary property containers. :meth:`~wx.propgrid.PropertyGridManager.InsertPage` Creates new property page. :meth:`~wx.propgrid.PropertyGridManager.IsAnyModified` Returns ``True`` if any property on any page has been modified by the user. :meth:`~wx.propgrid.PropertyGridManager.IsPageModified` Returns ``True`` if any property on given page has been modified by the user. :meth:`~wx.propgrid.PropertyGridManager.IsPropertySelected` Returns ``True`` if property is selected. :meth:`~wx.propgrid.PropertyGridManager.RemovePage` Removes a page. :meth:`~wx.propgrid.PropertyGridManager.SelectPage` Select and displays a given page. :meth:`~wx.propgrid.PropertyGridManager.SelectProperty` Select a property. :meth:`~wx.propgrid.PropertyGridManager.SetColumnCount` Sets number of columns on given page (default is current page). :meth:`~wx.propgrid.PropertyGridManager.SetColumnTitle` Sets a column title. :meth:`~wx.propgrid.PropertyGridManager.SetDescBoxHeight` Sets y coordinate of the description box splitter. :meth:`~wx.propgrid.PropertyGridManager.SetDescription` Sets label and text in description box. :meth:`~wx.propgrid.PropertyGridManager.SetPageSplitterLeft` Moves splitter as left as possible on an individual page, while still allowing all labels to be shown in full. :meth:`~wx.propgrid.PropertyGridManager.SetPageSplitterPosition` Sets splitter position on individual page. :meth:`~wx.propgrid.PropertyGridManager.SetSplitterLeft` Moves splitter as left as possible, while still allowing all labels to be shown in full. :meth:`~wx.propgrid.PropertyGridManager.SetSplitterPosition` Sets splitter position for all pages. :meth:`~wx.propgrid.PropertyGridManager.ShowHeader` Show or hide the property grid header control. ================================================================================ ================================================================================ | |property_summary| Properties Summary ===================================== ================================================================================ ================================================================================ :attr:`~wx.propgrid.PropertyGridManager.ColumnCount` See :meth:`~wx.propgrid.PropertyGridManager.GetColumnCount` and :meth:`~wx.propgrid.PropertyGridManager.SetColumnCount` :attr:`~wx.propgrid.PropertyGridManager.CurrentPage` See :meth:`~wx.propgrid.PropertyGridManager.GetCurrentPage` :attr:`~wx.propgrid.PropertyGridManager.DescBoxHeight` See :meth:`~wx.propgrid.PropertyGridManager.GetDescBoxHeight` and :meth:`~wx.propgrid.PropertyGridManager.SetDescBoxHeight` :attr:`~wx.propgrid.PropertyGridManager.Grid` See :meth:`~wx.propgrid.PropertyGridManager.GetGrid` :attr:`~wx.propgrid.PropertyGridManager.PageCount` See :meth:`~wx.propgrid.PropertyGridManager.GetPageCount` :attr:`~wx.propgrid.PropertyGridManager.SelectedPage` See :meth:`~wx.propgrid.PropertyGridManager.GetSelectedPage` :attr:`~wx.propgrid.PropertyGridManager.SelectedProperty` See :meth:`~wx.propgrid.PropertyGridManager.GetSelectedProperty` :attr:`~wx.propgrid.PropertyGridManager.Selection` See :meth:`~wx.propgrid.PropertyGridManager.GetSelection` :attr:`~wx.propgrid.PropertyGridManager.ToolBar` See :meth:`~wx.propgrid.PropertyGridManager.GetToolBar` ================================================================================ ================================================================================ | |api| Class API =============== .. class:: wx.propgrid.PropertyGridManager(Panel, PropertyGridInterface) **Possible constructors**:: PropertyGridManager() PropertyGridManager(parent, id=ID_ANY, pos=DefaultPosition, size=DefaultSize, style=PGMAN_DEFAULT_STYLE, name=PropertyGridManagerNameStr) PropertyGridManager is an efficient multi-page version of PropertyGrid, which can optionally have toolbar for mode and page selection, a help text box, and a header. .. method:: __init__(self, *args, **kw) |overload| Overloaded Implementations: :html:`

` **__init__** `(self)` Two step constructor. Call Create when this constructor is called to build up the :ref:`wx.propgrid.PropertyGridManager`. :html:`

` **__init__** `(self, parent, id=ID_ANY, pos=DefaultPosition, size=DefaultSize, style=PGMAN_DEFAULT_STYLE, name=PropertyGridManagerNameStr)` The default 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 ` :html:`

` .. method:: AddPage(self, label="", bmp=BitmapBundle(), pageObj=None) Creates new property page. Note that the first page is not created automatically. :param `label`: A label for the page. This may be shown as a toolbar tooltip etc. :type `label`: string :param `bmp`: Bitmap bundle for toolbar image. If the bundle is empty, then a built-in default bitmap bundle is used. :type `bmp`: wx.BitmapBundle :param `pageObj`: :ref:`wx.propgrid.PropertyGridPage` instance. Manager will take ownership of this object. ``None`` indicates that a default page instance should be created. :type `pageObj`: wx.propgrid.PropertyGridPage :rtype: :ref:`wx.propgrid.PropertyGridPage` :returns: Returns pointer to created property grid page. .. note:: If toolbar is used, it is highly recommended that the pages are added when the toolbar is not turned off using window style flag switching. Otherwise toolbar buttons might not be added properly. .. method:: Clear(self) Deletes all properties and all pages. .. method:: ClearPage(self, page) Deletes all properties on given page. :param `page`: :type `page`: int .. method:: CommitChangesFromEditor(self, flags=0) Forces updating the value of property from the editor control. :param `flags`: :type `flags`: wx.int :rtype: `bool` :returns: Returns ``True`` if value was actually updated. .. method:: Create(self, parent, id=ID_ANY, pos=DefaultPosition, size=DefaultSize, style=PGMAN_DEFAULT_STYLE, name=PropertyGridManagerNameStr) 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:: CreatePropertyGrid(self) Creates property grid for the manager. Reimplement in derived class to use subclassed :ref:`wx.propgrid.PropertyGrid`. However, if you do this then you must also use the two-step construction (i.e. default constructor and :meth:`Create` instead of constructor with arguments) when creating the manager. :rtype: :ref:`wx.propgrid.PropertyGrid` .. method:: EnableCategories(self, enable) Enables or disables (shows/hides) categories according to parameter enable. :param `enable`: :type `enable`: bool :rtype: `bool` .. note:: Calling this may not properly update toolbar buttons. .. method:: EnsureVisible(self, id) Selects page, 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. .. staticmethod:: GetClassDefaultAttributes(variant=WINDOW_VARIANT_NORMAL) :param `variant`: :type `variant`: wx.WindowVariant :rtype: `VisualAttributes` .. method:: GetColumnCount(self, page=-1) Returns number of columns on given page. By the default, returns number of columns on current page. :param `page`: :type `page`: int :rtype: `int` .. method:: GetCurrentPage(self) Returns currently selected page. :rtype: :ref:`wx.propgrid.PropertyGridPage` .. method:: GetDescBoxHeight(self) Returns height of the description text box. :rtype: `int` .. method:: GetGrid(self) Returns pointer to the contained :ref:`wx.propgrid.PropertyGrid`. This does not change after :ref:`wx.propgrid.PropertyGridManager` has been created, so you can safely obtain pointer once and use it for the entire lifetime of the manager instance. :rtype: :ref:`wx.propgrid.PropertyGrid` .. method:: GetPage(self, *args, **kw) |overload| Overloaded Implementations: :html:`

` **GetPage** `(self, ind)` Returns page object for given page index. :param `ind`: :type `ind`: int :rtype: :ref:`wx.propgrid.PropertyGridPage` :html:`

` **GetPage** `(self, name)` Returns page object for given page name. :param `name`: :type `name`: string :rtype: :ref:`wx.propgrid.PropertyGridPage` :html:`

` .. method:: GetPageByName(self, name) Returns index for a page name. If no match is found, ``wx.NOT_FOUND`` is returned. :param `name`: :type `name`: string :rtype: `int` .. method:: GetPageByState(self, pstate) Returns index for a relevant propertygrid state. If no match is found, ``wx.NOT_FOUND`` is returned. :param `pstate`: :type `pstate`: wx.propgrid.PropertyGridPageState :rtype: `int` .. method:: GetPageCount(self) Returns number of managed pages. :rtype: `int` .. method:: GetPageName(self, index) Returns name of given page. :param `index`: :type `index`: int :rtype: `string` .. method:: GetPageRoot(self, index) Returns "root property" of the given page. It does not have name, etc. and it is not visible. It is only useful for accessing its children. :param `index`: :type `index`: int :rtype: :ref:`wx.propgrid.PGProperty` .. method:: GetSelectedPage(self) Returns index to currently selected page. :rtype: `int` .. method:: GetSelectedProperty(self) Alias for :meth:`GetSelection` . :rtype: :ref:`wx.propgrid.PGProperty` .. method:: GetSelection(self) Shortcut for :meth:`GetGrid` . :meth:`GetSelection` . :rtype: :ref:`wx.propgrid.PGProperty` .. method:: GetToolBar(self) Returns a pointer to the toolbar currently associated with the :ref:`wx.propgrid.PropertyGridManager` (if any). :rtype: `ToolBar` .. method:: GetVIterator(self, flags) Similar to :meth:`~wx.propgrid.PropertyGridInterface.GetIterator` , but instead returns :ref:`wx.propgrid.PGVIterator` instance, which can be useful for forward-iterating through arbitrary property containers. :param `flags`: :type `flags`: int :rtype: :ref:`wx.propgrid.PGVIterator` .. method:: InsertPage(self, index, label, bmp=BitmapBundle(), pageObj=None) Creates new property page. Note that the first page is not created automatically. :param `index`: Add to this position. -1 will add as the last item. :type `index`: int :param `label`: A label for the page. This may be shown as a toolbar tooltip etc. :type `label`: string :param `bmp`: Bitmap bundle for toolbar image. If the bundle is empty, then a built-in default bitmap bundle is used. :type `bmp`: wx.BitmapBundle :param `pageObj`: :ref:`wx.propgrid.PropertyGridPage` instance. Manager will take ownership of this object. If ``None``, default page object is constructed. :type `pageObj`: wx.propgrid.PropertyGridPage :rtype: :ref:`wx.propgrid.PropertyGridPage` :returns: Returns pointer to created page. .. method:: IsAnyModified(self) Returns ``True`` if any property on any page has been modified by the user. :rtype: `bool` .. method:: IsPageModified(self, index) Returns ``True`` if any property on given page has been modified by the user. :param `index`: :type `index`: int :rtype: `bool` .. method:: IsPropertySelected(self, id) Returns ``True`` if property is selected. Since selection is page based, this function checks every page in the manager. :param `id`: :type `id`: wx.propgrid.PGPropArgCls :rtype: `bool` .. method:: RemovePage(self, page) Removes a page. :param `page`: :type `page`: int :rtype: `bool` :returns: Returns ``False`` if it was not possible to remove page in question. .. method:: SelectPage(self, *args, **kw) |overload| Overloaded Implementations: :html:`

` **SelectPage** `(self, index)` Select and displays a given page. :param `index`: Index of page being selected. Can be -1 to select nothing. :type `index`: int :html:`

` **SelectPage** `(self, label)` Select and displays a given page (by label). :param `label`: :type `label`: string :html:`

` **SelectPage** `(self, page)` Select and displays a given page. :param `page`: :type `page`: wx.propgrid.PropertyGridPage :html:`

` .. method:: SelectProperty(self, id, focus=False) Select a property. :param `id`: :type `id`: wx.propgrid.PGPropArgCls :param `focus`: :type `focus`: bool :rtype: `bool` .. seealso:: :meth:`wx.propgrid.PropertyGrid.SelectProperty` , :meth:`wx.propgrid.PropertyGridInterface.ClearSelection` .. method:: SetColumnCount(self, colCount, page=-1) Sets number of columns on given page (default is current page). :param `colCount`: :type `colCount`: int :param `page`: :type `page`: int .. note:: If you use header, then you should always use this member function to set the column count, instead of ones present in :ref:`wx.propgrid.PropertyGrid` or :ref:`wx.propgrid.PropertyGridPage`. .. method:: SetColumnTitle(self, idx, title) Sets a column title. Default title for column 0 is "Property", and "Value" for column 1. :param `idx`: :type `idx`: int :param `title`: :type `title`: string .. note:: If header is not shown yet, then calling this member function will make it visible. .. method:: SetDescBoxHeight(self, ht, refresh=True) Sets y coordinate of the description box splitter. :param `ht`: :type `ht`: int :param `refresh`: :type `refresh`: bool .. method:: SetDescription(self, label, content) Sets label and text in description box. :param `label`: :type `label`: string :param `content`: :type `content`: string .. method:: SetPageSplitterLeft(self, page, subProps=False) Moves splitter as left as possible on an individual page, while still allowing all labels to be shown in full. :param `page`: :type `page`: int :param `subProps`: :type `subProps`: bool .. method:: SetPageSplitterPosition(self, page, pos, column=0) Sets splitter position on individual page. :param `page`: :type `page`: int :param `pos`: :type `pos`: int :param `column`: :type `column`: int .. note:: If you use header, then you should always use this member function to set the splitter position, instead of ones present in :ref:`wx.propgrid.PropertyGrid` or :ref:`wx.propgrid.PropertyGridPage`. .. method:: SetSplitterLeft(self, subProps=False, allPages=True) Moves splitter as left as possible, while still allowing all labels to be shown in full. :param `subProps`: If ``False``, will still allow sub-properties (i.e. properties which parent is not root or category) to be cropped. :type `subProps`: bool :param `allPages`: If ``True``, takes labels on all pages into account. :type `allPages`: bool .. method:: SetSplitterPosition(self, pos, column=0) Sets splitter position for all pages. If you use header, then you should always use this member function to set the splitter position, instead of ones present in :ref:`wx.propgrid.PropertyGrid` or :ref:`wx.propgrid.PropertyGridPage`. :param `pos`: :type `pos`: int :param `column`: :type `column`: 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:: ShowHeader(self, show=True) Show or hide the property grid header control. It is hidden by the default. :param `show`: :type `show`: bool .. note:: Grid may look better if you use ``PG_NO_INTERNAL_BORDER`` window style when showing a header. .. attribute:: ColumnCount See :meth:`~wx.propgrid.PropertyGridManager.GetColumnCount` and :meth:`~wx.propgrid.PropertyGridManager.SetColumnCount` .. attribute:: CurrentPage See :meth:`~wx.propgrid.PropertyGridManager.GetCurrentPage` .. attribute:: DescBoxHeight See :meth:`~wx.propgrid.PropertyGridManager.GetDescBoxHeight` and :meth:`~wx.propgrid.PropertyGridManager.SetDescBoxHeight` .. attribute:: Grid See :meth:`~wx.propgrid.PropertyGridManager.GetGrid` .. attribute:: PageCount See :meth:`~wx.propgrid.PropertyGridManager.GetPageCount` .. attribute:: SelectedPage See :meth:`~wx.propgrid.PropertyGridManager.GetSelectedPage` .. attribute:: SelectedProperty See :meth:`~wx.propgrid.PropertyGridManager.GetSelectedProperty` .. attribute:: Selection See :meth:`~wx.propgrid.PropertyGridManager.GetSelection` .. attribute:: ToolBar See :meth:`~wx.propgrid.PropertyGridManager.GetToolBar`