GUI Modules used by the Terminal agent.

Each of the submodules contains GUI objects of different types, and will continue to be refined to allow for extensions by plugins.

  • gui.menus - Widgets and dialogues available from the Terminal menubar

  • gui.plots - Widgets and graphical primitives used for task plots

  • gui.widgets - General purpose widgets that make up the Terminal GUI

  • gui.dialog - Convenience function for popping standard modal/nonmodal dialogues

  • gui.styles - Qt Stylesheets (css-like) for the Terminal

These classes implement the GUI used by the Terminal.

The GUI is built using PySide2, a Python wrapper around Qt5.

These classes are all currently used only by the Terminal.

If performing any GUI operations in another thread (eg. as a callback from a networking object), the method must be decorated with @gui_event which will call perform the update in the main thread as required by Qt.


Currently, the GUI code is some of the oldest code in the library – in particular much of it was developed before the network infrastructure was mature. As a result, a lot of modules are interdependent (eg. pass objects between each other). This will be corrected before v1.0