GroupNode
A container widget that holds children elements within a bordered, optionally filled area.
Groups serve as the basic building block for organizing widgets. Children are positioned relative to the group’s origin, offset by the group’s margins and border width. The group automatically grows to fit its children.
- Special Attributes
| Name | Type | Description |
|---|---|---|
| geometry | Rect | A rectangle describing the position and dimensions of the widget |
| children | List | A list of child widgets contained by this group |
| background | Color | A fill color for the group, defaults to transparent |
| border-color | Color | The color of the group’s border, defaults to $000000 |
| border-width | Number | The thickness of the group’s border in pixels, defaults to 0 |
| margins | Rect | Inset spacing within the group’s border, defaults to 0x0x0x0 |
| visibility | String | A pv that determines the visibility of the widget, visibility is turned off if the PV’s value is zero. This logic is inverted if the !Not tag is used instead of String |
- Example
StatusBox: !Group
geometry: 200x100
background: $EEEEEE
border-width: 2
border-color: *black
margins: 5x5x5x5
children:
- !Text
geometry: 0x0 x 190x20
text: "Device Status"
alignment: Center
- !TextMonitor
geometry: 0x25 x 190x20
pv: "$(P)$(R)Status_RBV"
Groups can also be used as visibility containers, showing or hiding their children based on a PV value:
ConditionalControls: !Group
visibility: "$(P)$(R)Enabled"
children:
- !MessageButton
geometry: 100x30
text: "Start"
pv: "$(P)$(R)Start"
value: 1