Rogue Widgets

Rogue provides PyDM widgets that understand common PyRogue structures and workflows. These are most useful when building custom screens, because they let you reuse the same tree-aware controls that appear in the stock debug tools.

The main widgets exported by pyrogue.pydm.widgets are:

  • SystemWindow: Top-level system window that combines root controls, run control widgets, data-writer widgets, and the system log.

  • RootControl: Widget for reset actions and configuration file management.

  • RunControl: Widget for a pyrogue.RunControl Device.

  • DataWriter: Widget for a pyrogue.DataWriter Device.

  • SystemLog: Widget that displays the Rogue system log.

  • Process: Widget for a pyrogue.Process Device.

  • DebugTree: Tree browser for Devices, Variables, and Commands.

  • PyRogueLabel: Label widget with Rogue-oriented unit display handling.

  • PyRogueLineEdit: Rogue-aware line edit that keeps the stale-value visual state.

  • Plotter: General plotting widget exported by the widget package.

  • TimePlotter: Plotting widget for time-varying values.

These widgets are not just cosmetic wrappers. Several of them inspect the connected Rogue node and build out a larger Qt layout dynamically after the channel connects. For example, SystemWindow discovers DataWriter and RunControl devices under the bound Root and adds matching subwidgets.

How To Use Them

These widgets are typically placed in a Qt Designer .ui file and then bound to Rogue channels such as:

rogue://0/root
rogue://0/root.MyProcess
rogue://0/root.MyDevice.MyVariable/disp

Some widgets expect to bind to a Root-level path, while others expect a specific Device or Variable path. In general:

  • SystemWindow and DebugTree are Root-oriented.

  • Process, RunControl, and DataWriter are Device-oriented.

  • PyRogueLabel and PyRogueLineEdit are typically Variable-oriented.

When in doubt, inspect the widget’s constructor and connection_changed implementation in python/pyrogue/pydm/widgets. Most path requirements are clear there because the widget appends explicit child paths such as .SystemLog or .runState after connecting.

Choosing Between Stock And Custom Widgets

Use the stock debug GUI when you want a ready-made environment for broad tree inspection. Use custom screens with Rogue widgets when you want:

  • A reduced operator-facing surface,

  • A system-specific workflow,

  • Or a custom layout that focuses on the important Variables and Commands.

For code-constructed displays, the normal top-level object is a pydm.Display subclass. Rogue’s widgets are then added to that display just like any other Qt/PyDM widget tree. The launcher details for that pattern are covered in Starting The Rogue PyDM GUI.

What To Explore Next

API Reference