Qwt
Qwt est une extension de la bibliothèque de widgets Qt (composants d'interface graphique).
Le principal widget, QwtPlot, sert à représenter des données en 2D(items).
Une fois créés, les items (courbes, marqueurs, grilles, images, objets SVG, ...) sont ajoutés dans un QwtPlot qui se charge ensuite de leur affichage. L'héritage C++ permet de créer ses propres types d'item (voir l'exemple avec l'histogramme).
Un QwtPlot peut définir jusqu'à 4 axes (verticaux à gauche ou à droite et horizontaux en haut ou en bas), chaque item étant attaché (relié) à un axe X (haut ou bas) et un axe Y (gauche ou droit) afin de mapper les données réelles de l'item (y = f(x) pour une courbe) au système de coordonnées écran.
Chaque axe est paramétrable (extrema, affichage des graduations, mapping linéaire, logarithmique ou "user-defined").
Un système de sélection de zone permet de sélectionner (à la souris, au clavier) graphiquement un point, un rectangle (sans avoir besoin de redessiner tous les items présents dans le QwtPlot). Une fois la sélection effectuée, les coordonnées de la sélection (pixels) peuvent être mappés en coordonnées réelles afin de traiter la sélection.
Dans le cas du zoom, les graduations des axes sont mises à jour avec les coordonnées réelles de la sélection puis les items sont redessinés, en tenant compte de la nouvelle fenêtre d'affichage.
Il existe aussi d'autres widgets que le QwtPlot: sliders avec graduations, boussoles, potentiomètres, thermomètres et tout autres widgets d'un tableau de bord...
Le mapping (linéaire, logarithmique,...) d'intervalles de valeurs réelles avec des intervalles de valeurs entières peut être utilisé indépendemment de l'objet QwtPlot: soit dans un contexte graphique (définir un mapping et le représenter avec une échelle graduée) soit dans un contexte non graphique (mapping seul).
L’approche de la bibliothèque Qwt est très similaire syntaxiquement et fonctionnellement à la bibliothèque Qt.
Les widgets de Qwt sont accessibles dans le designer Qt, un module Python est disponible (grâce au wrapper sip).
Les exemples d'utilisation (C++ et Python) donnent un aperçu rapide, clair et essentiel des principales fonctionnalités de la librairie et de contextes d'utilisation.
Rien de spécial à préciser si ce n'est la prise en charge très utile du format SVG pour de jolis rendus sur posters.
Utilisé pour étendre les fonctionnalités de Qt dans un contexte d'affichage et de visualisation de données 2D.