TabbedRepeatNode

A tabbed display where each tab is automatically generated by iterating over input data.

Combines the tab interface of TabbedGroup with the iteration logic of Repeat. Each iteration of the repeat-over data produces a new tab. Tab names are derived from the iteration variable.

The same iteration modes as Repeat are supported: numeric ranges, lists of values, and lists of dictionaries.

  • Special Attributes
Name Type Description
geometry Rect A rectangle describing the position and dimensions of the widget
children List A list of widgets to use as the template for each tab’s content
repeat-over String The name of a macro that will be provided within the input data file
variable String The name under which to provide the value of the loop index, ‘N’ by default
start-at Number An offset value to the loop index to provide children widgets
foreground Color The color of the text for each tab, defaults to $000000
background Color The fill color for each display pane, defaults to transparent
tab-color Color The background color for each tab, defaults to $D2D2D2
selected Color The background color for the currently selected tab, defaults to $A8A8A8
border-color Color The color of the border that surrounds the display panes, defaults to $000000
border-width Number The thickness of the group’s border in pixels, defaults to 0
padding Number The number of pixels between each tab, defaults to 5
inset Number The number of pixels to horizontally offset the tab bar from the display pane, defaults to 0
offset Number The number of pixels to vertically offset the display pane from the tab bar, defaults to 0
font Font The display font for the tabs, defaults to Liberation Sans 12
  • Example
ChannelTabs: !TabbedRepeat
    geometry: 400x300
    repeat-over: "CHANNELS"
    variable: "ch"

    tab-color: *header_blue
    foreground: *white
    selected: $3970C4
    border-color: *header_blue
    font: -DejaVu Sans Mono -Bold -9

    children:
        - !VFlow
            padding: 5
            children:
                - !TextMonitor { geometry: 120x20, pv: "$(P)$(R){ch}:Value_RBV" }
                - !TextEntry   { geometry: 120x20, pv: "$(P)$(R){ch}:Setpoint", background: *edit_blue }