1. Introduction

The cut-widgets library provides a set of C++/Qt widgets for visualizing scalar, vector, and matrix data. It is used as part of the Control UI Toolkit (CUT) to build graphical user interfaces for the ESO ELT control system.

The widgets are implemented in C++23 with PySide6 bindings via Shiboken, providing a cross-language API usable from both C++ and Python. A parallel set of Taurus-integrated widgets adds declarative data binding, connecting widget model properties directly to CII OLDB datapoints through Taurus model URIs.

The library offers minimal dependencies and includes both lower-level visualization widgets and higher-level applications with full toolbars and dock widgets.

1.2. What is covered here

This manual covers the following widgets:

Visualization widgets

Core display elements for image and plot data:

Widget

Purpose

QeImage QePlot QeTrend QeMatrixView QeVectorView

2D image display using Data Display Tool (DDT) 1D vector plot using Qwt Time-series trending of scalar data with Qwt Full-featured matrix viewer with toolbar and docks Full-featured vector viewer with toolbar and docks

Taurus data-bound widgets

Drop-in replacements that add Taurus model binding, connecting live datapoints to the underlying canvas widgets:

Widget

Based on

Datapoint type

TaurusQeImage TaurusQePlot TaurusQeTrend

QeImage QePlot QeTrend

2D matrix (DataFormat._2D) 1D vector (DataFormat._1D) Scalar (DataFormat._0D)

Qt Designer plugins

All widgets are registered in Qt Designer under their respective groups. Taurus widgets can be placed from the “Taurus Display” group; their model property accepts Taurus URIs such as cii.oldb:/cut/demoservice/instance1/double-vector-sin.

Standalone CLI launchers

The Taurus widgets can also be launched from the command line using the taurus CLI:

taurus image cii.oldb:/cut/demoservice/instance1/double-matrix-sin-cos
taurus plot  cii.oldb:/cut/demoservice/instance1/double-vector-sin
taurus trend cii.oldb:/cut/demoservice/instance1/double-scalar-sin

These commands are available when the cut.wdglib.taurus.plot package is installed and registered its alternative entry points.

1.3. Prerequisites

The cut-widgets library depends on:

  • Qt 6 (PySide6) – for UI rendering and event loop

  • Qwt – for QePlot and QeTrend canvas rendering

  • Data Display Tool (DDT) – for QeImage

  • Taurus – for data-bound widgets (TaurusQePlot, TaurusQeTrend, TaurusQeImage)

1.4. License and third-party components

The library is licensed under LGPL 3.0. QePlot and QeTrend are based in part on the Qwt project (http://qwt.sf.net). QeImage and QeMatrixView depend on the DDT library, which carries an ESO proprietary license.