wx.propgrid.PropertyGridManager is an efficient multi-page version of wx.propgrid.PropertyGrid, which can optionally have toolbar for mode and page selection, a help text box, and a header.
wx.propgrid.PropertyGridManager inherits from wx.propgrid.PropertyGridInterface, and as such it has most property manipulation functions. However, only some of them affect properties on all pages (e.g. GetPropertyByName
and ExpandAll
while some (e.g. Append
only apply to the currently selected page.
To operate explicitly on properties on specific page, use wx.propgrid.PropertyGridManager.GetPage
to obtain pointer to page’s wx.propgrid.PropertyGridPage object.
Visual methods, such as SetCellBackgroundColour() are only available in wx.propgrid.PropertyGrid. Use wx.propgrid.PropertyGridManager.GetGrid
to obtain pointer to it.
Non-virtual iterators will not work in wx.propgrid.PropertyGridManager. Instead, you must acquire the internal grid ( GetGrid
) or wx.propgrid.PropertyGridPage object ( GetPage
).
wx.propgrid.PropertyGridManager constructor has exact same format as 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 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()
See PropertyGrid Window Styles.
See PropertyGrid Event Handling for more information.
Two step constructor. |
|
Creates new property page. |
|
Deletes all properties and all pages. |
|
Deletes all properties on given page. |
|
Forces updating the value of property from the editor control. |
|
Two step creation. |
|
Creates property grid for the manager. |
|
Enables or disables (shows/hides) categories according to parameter enable. |
|
Selects page, scrolls and/or expands items to ensure that the given item is visible. |
|
Returns number of columns on given page. |
|
Returns currently selected page. |
|
Returns height of the description text box. |
|
Returns pointer to the contained wx.propgrid.PropertyGrid. |
|
Returns page object for given page index. |
|
Returns index for a page name. |
|
Returns index for a relevant propertygrid state. |
|
Returns number of managed pages. |
|
Returns name of given page. |
|
Returns “root property” of the given page. |
|
Returns index to currently selected page. |
|
Alias for |
|
Shortcut for |
|
Returns a pointer to the toolbar currently associated with the wx.propgrid.PropertyGridManager (if any). |
|
Similar to |
|
Creates new property page. |
|
Returns |
|
Returns |
|
Returns |
|
Removes a page. |
|
Select and displays a given page. |
|
Select a property. |
|
Sets number of columns on given page (default is current page). |
|
Sets a column title. |
|
Sets y coordinate of the description box splitter. |
|
Sets label and text in description box. |
|
Moves splitter as left as possible on an individual page, while still allowing all labels to be shown in full. |
|
Sets splitter position on individual page. |
|
Moves splitter as left as possible, while still allowing all labels to be shown in full. |
|
Sets splitter position for all pages. |
|
Show or hide the property grid header control. |
See |
|
See |
|
See |
|
See |
|
See |
|
See |
|
See |
|
See |
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.
__init__
(self, *args, **kw)¶__init__ (self)
Two step constructor.
Call Create when this constructor is called to build up the wx.propgrid.PropertyGridManager.
__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 wx.Window.
See also
PropertyGrid Window Styles
AddPage
(self, label="", bmp=BitmapBundle(), pageObj=None)¶Creates new property page.
Note that the first page is not created automatically.
label (string) – A label for the page. This may be shown as a toolbar tooltip etc.
bmp (wx.BitmapBundle) – Bitmap bundle for toolbar image. If the bundle is empty, then a built-in default bitmap bundle is used.
pageObj (wx.propgrid.PropertyGridPage) – wx.propgrid.PropertyGridPage instance. Manager will take ownership of this object. None
indicates that a default page instance should be created.
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.
Clear
(self)¶Deletes all properties and all pages.
ClearPage
(self, page)¶Deletes all properties on given page.
page (int) –
CommitChangesFromEditor
(self, flags=0)¶Forces updating the value of property from the editor control.
flags (wx.int) –
bool
Returns True
if value was actually updated.
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.
bool
See also
PropertyGrid Window Styles
CreatePropertyGrid
(self)¶Creates property grid for the manager.
Reimplement in derived class to use subclassed wx.propgrid.PropertyGrid. However, if you do this then you must also use the two-step construction (i.e. default constructor and Create
instead of constructor with arguments) when creating the manager.
EnableCategories
(self, enable)¶Enables or disables (shows/hides) categories according to parameter enable.
enable (bool) –
bool
Note
Calling this may not properly update toolbar buttons.
EnsureVisible
(self, id)¶Selects page, scrolls and/or expands items to ensure that the given item is visible.
id (wx.propgrid.PGPropArgCls) –
bool
Returns True
if something was actually done.
GetClassDefaultAttributes
(variant=WINDOW_VARIANT_NORMAL)¶variant (WindowVariant) –
VisualAttributes
GetColumnCount
(self, page=-1)¶Returns number of columns on given page.
By the default, returns number of columns on current page.
page (int) –
int
GetCurrentPage
(self)¶Returns currently selected page.
GetDescBoxHeight
(self)¶Returns height of the description text box.
int
GetGrid
(self)¶Returns pointer to the contained wx.propgrid.PropertyGrid.
This does not change after wx.propgrid.PropertyGridManager has been created, so you can safely obtain pointer once and use it for the entire lifetime of the manager instance.
GetPage
(self, *args, **kw)¶GetPage (self, ind)
Returns page object for given page index.
ind (int) –
GetPage (self, name)
Returns page object for given page name.
name (string) –
GetPageByName
(self, name)¶Returns index for a page name.
If no match is found, wx.NOT_FOUND
is returned.
name (string) –
int
GetPageByState
(self, pstate)¶Returns index for a relevant propertygrid state.
If no match is found, wx.NOT_FOUND
is returned.
pstate (wx.propgrid.PropertyGridPageState) –
int
GetPageCount
(self)¶Returns number of managed pages.
int
GetPageName
(self, index)¶Returns name of given page.
index (int) –
string
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.
index (int) –
GetSelectedPage
(self)¶Returns index to currently selected page.
int
GetSelectedProperty
(self)¶Alias for GetSelection
.
GetSelection
(self)¶Shortcut for GetGrid
. GetSelection
.
GetToolBar
(self)¶Returns a pointer to the toolbar currently associated with the wx.propgrid.PropertyGridManager (if any).
GetVIterator
(self, flags)¶Similar to GetIterator
, but instead returns wx.propgrid.PGVIterator instance, which can be useful for forward-iterating through arbitrary property containers.
flags (int) –
InsertPage
(self, index, label, bmp=BitmapBundle(), pageObj=None)¶Creates new property page.
Note that the first page is not created automatically.
index (int) – Add to this position. -1 will add as the last item.
label (string) – A label for the page. This may be shown as a toolbar tooltip etc.
bmp (wx.BitmapBundle) – Bitmap bundle for toolbar image. If the bundle is empty, then a built-in default bitmap bundle is used.
pageObj (wx.propgrid.PropertyGridPage) – wx.propgrid.PropertyGridPage instance. Manager will take ownership of this object. If None
, default page object is constructed.
Returns pointer to created page.
IsAnyModified
(self)¶Returns True
if any property on any page has been modified by the user.
bool
IsPageModified
(self, index)¶Returns True
if any property on given page has been modified by the user.
index (int) –
bool
IsPropertySelected
(self, id)¶Returns True
if property is selected.
Since selection is page based, this function checks every page in the manager.
id (wx.propgrid.PGPropArgCls) –
bool
RemovePage
(self, page)¶Removes a page.
page (int) –
bool
Returns False
if it was not possible to remove page in question.
SelectPage
(self, *args, **kw)¶SelectPage (self, index)
Select and displays a given page.
index (int) – Index of page being selected. Can be -1 to select nothing.
SelectPage (self, label)
Select and displays a given page (by label).
label (string) –
SelectPage (self, page)
Select and displays a given page.
page (wx.propgrid.PropertyGridPage) –
SelectProperty
(self, id, focus=False)¶Select a property.
id (wx.propgrid.PGPropArgCls) –
focus (bool) –
bool
SetColumnCount
(self, colCount, page=-1)¶Sets number of columns on given page (default is current page).
colCount (int) –
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 wx.propgrid.PropertyGrid or wx.propgrid.PropertyGridPage.
SetColumnTitle
(self, idx, title)¶Sets a column title.
Default title for column 0 is “Property”, and “Value” for column 1.
idx (int) –
title (string) –
Note
If header is not shown yet, then calling this member function will make it visible.
SetDescBoxHeight
(self, ht, refresh=True)¶Sets y coordinate of the description box splitter.
ht (int) –
refresh (bool) –
SetDescription
(self, label, content)¶Sets label and text in description box.
label (string) –
content (string) –
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.
page (int) –
subProps (bool) –
SetPageSplitterPosition
(self, page, pos, column=0)¶Sets splitter position on individual page.
page (int) –
pos (int) –
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 wx.propgrid.PropertyGrid or wx.propgrid.PropertyGridPage.
SetSplitterLeft
(self, subProps=False, allPages=True)¶Moves splitter as left as possible, while still allowing all labels to be shown in full.
subProps (bool) – If False
, will still allow sub-properties (i.e. properties which parent is not root or category) to be cropped.
allPages (bool) – If True
, takes labels on all pages into account.
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 wx.propgrid.PropertyGrid or wx.propgrid.PropertyGridPage.
pos (int) –
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.
ShowHeader
(self, show=True)¶Show or hide the property grid header control.
It is hidden by the default.
show (bool) –
Note
Grid may look better if you use PG_NO_INTERNAL_BORDER
window style when showing a header.
ColumnCount
¶See GetColumnCount
and SetColumnCount
CurrentPage
¶See GetCurrentPage
DescBoxHeight
¶See GetDescBoxHeight
and SetDescBoxHeight
PageCount
¶See GetPageCount
SelectedPage
¶See GetSelectedPage
SelectedProperty
¶Selection
¶See GetSelection
ToolBar
¶See GetToolBar