fsleyes_widgets.widgetlist

This module provides the WidgetList class, which displays a list of widgets.

class fsleyes_widgets.widgetlist.WidgetList(parent, style=0, minHeight=-1)[source]

Bases: ScrolledPanel

A scrollable list of widgets.

The WidgetList provides a number of features:

  • Widgets can be grouped.

  • A label can be shown next to each widget.

  • Widget groups can be collapsed/expanded.

  • Widgets and groups can be dynamically added/removed.

The most important methods are:

AddWidget

Add an arbitrary widget to the property list.

AddGroup

Add a new group to this WidgetList.

A WidgetList looks something like this:

A WidgetList emits a WidgetListChangeEvent whenever its contents change.

Create a WidgetList.

Parameters:
  • parent – The wx parent object.

  • style – Passed through to wx.ScrolledPanel.__init__

  • minHeight – Minimum height of each row

DoGetBestSize()[source]

Returns the best size for the widget list, with all group widgets expanded.

SetColours(odd=None, even=None, group=None)[source]

Sets the colours used on this WidgetList.

Each argument is assumed to be a tuple of (r, g, b) values, each in the range [0 - 255].

Parameters:
  • odd – Background colour for widgets on odd rows.

  • even – Background colour for widgets on even rows.

  • group – Border/title colour for widget groups.

GetGroups()[source]

Returns a list containing the name of every group in this WidgetList.

HasGroup(groupName)[source]

Returns True if this WidgetList contains a group with the specified name.

RenameGroup(groupName, newDisplayName)[source]

Changes the display name of the specified group.

Note

This method only changes the display name of a group, not the group identifier name. See the AddGroup() method.

Parameters:
  • groupName – Name of the group.

  • newDisplayName – New display name for the group.

AddGroup(groupName, displayName=None)[source]

Add a new group to this WidgetList.

A ValueError is raised if a group with the specified name already exists.

Parameters:
  • groupName – The name of the group - this is used as an identifier for the group.

  • displayName – A string to be shown in the title bar for the group. This can be changed later via the RenameGroup() method.

GetWidgets(groupName=None)[source]

Returns a list containing all of the widgets that have been added to this WidgetList.

Parameters:

groupName – If provided, only widgets in the specified group will be returned. Otherwise, ungrouped widgets are returned.

AddWidget(widget, displayName, tooltip=None, groupName=None)[source]

Add an arbitrary widget to the property list.

If the groupName is not provided, the widget is added to a list of top level widgets, which appear at the top of the list, above any groups. Otherwise, the widget is added to the collapsible panel corresponding to the specified group.

A ValueError is raised if the widget is already contained in the list.

Parameters:
  • widget – The widget to add to the list.

  • displayName – The widget label/display name.

  • tooltip – A tooltip for the widget.

  • groupName

    Name of the group to which the widget should be

    added.

    Note

    The provided widget may also be a wx.Sizer instances, although support for this is basic. Specifically, only one level of nesting is possible, i.e. the provided wx.Sizer may not have any other wx.Sizer instances as its children.

AddSpace(groupName=None)[source]

Adds some empty vertical space to the widget list.

Parameters:

groupName – Name of the group tio which the space should be added. If not specified, the space is added to the top level widget list - see the AddWidget() method.

RemoveWidget(widget, groupName=None)[source]

Removes and destroys the specified widget from this WidgetList.

Parameters:
  • widget – The widget to remove.

  • groupName – Name of the group in which the widget is contained.

RemoveGroup(groupName)[source]

Removes the specified group, and destroys all of the widgets contained within it.

Clear()[source]

Removes and destroys all widgets and groups.

ClearGroup(groupName)[source]

Removes and destroys all widgets in the specified group, but does not remove the group.

GroupSize(groupName)[source]

Returns the number of widgets that have been added to the specified group.

IsExpanded(groupName)[source]

Returns True if the panel for the specified group is currently expanded, False if it is collapsed

Expand(groupName, expand=True)[source]

Expands or collapses the panel for the specified group.

fsleyes_widgets.widgetlist.WidgetListChangeEvent

Event emitted by a WidgetList when its contents change.

fsleyes_widgets.widgetlist.WidgetListExpandEvent

Event emitted by a WidgetList when a group is expanded or collapsed.

fsleyes_widgets.widgetlist.EVT_WL_CHANGE_EVENT = <wx.core.PyEventBinder object>

Identifier for the WidgetListChangeEvent.

fsleyes_widgets.widgetlist.EVT_WL_EXPAND_EVENT = <wx.core.PyEventBinder object>

Identifier for the WidgetListExpandEvent.

fsleyes_widgets.widgetlist.WL_ONE_EXPANDED = 1

WidgetList style flag. When applied, at most one group will be expanded at any one time.