From f4d96862f05b0595946d0ee4569340381ab8baf5 Mon Sep 17 00:00:00 2001
From: Pierre Raybaut
Date: Wed, 2 Oct 2024 09:46:21 +0200
Subject: [PATCH] README.md: add supported Qt bindings See #20
---
README.md | 55 +++++++++++++++++++++++++++----------------------------
1 file changed, 27 insertions(+), 28 deletions(-)
diff --git a/README.md b/README.md
index a65fb4b..a5ad010 100644
--- a/README.md
+++ b/README.md
@@ -11,23 +11,19 @@
## Overview
-`plotpy` is is a Python library providing efficient 2D data-plotting features
-for interactive computing and signal/image processing application development.
-It is part of the [PlotPyStack](https://github.com/PlotPyStack) project, aiming at
-providing a unified framework for creating scientific GUIs with Python and Qt.
+`plotpy` is is a Python library providing efficient 2D data-plotting features for interactive computing and signal/image processing application development.
+It is part of the [PlotPyStack](https://github.com/PlotPyStack) project, aiming at providing a unified framework for creating scientific GUIs with Python and Qt.
`plotpy` is based on:
-* [Python](http://www.python.org) language and [Qt](https://doc.qt.io/) GUI toolkit (via [PySide](https://doc.qt.io/qtforpython-6/) or [PyQt](http://www.riverbankcomputing.co.uk/software/pyqt/intro))
+* [Python](http://www.python.org) language and [Qt](https://doc.qt.io/) GUI toolkit
* [guidata](https://pypi.python.org/pypi/guidata) automatic GUI generation library
* [PythonQwt](https://pypi.python.org/pypi/PythonQwt) plotting widgets library
* [NumPy](https://pypi.python.org/pypi/NumPy) and [SciPy](https://pypi.python.org/pypi/SciPy) scientific computing libraries
-See [documentation](https://plotpy.readthedocs.io/en/latest/) for more details on
-the library and [changelog](https://github.com/PlotPyStack/PlotPy/blob/master/CHANGELOG.md)
-for recent history of changes.
+See [documentation](https://plotpy.readthedocs.io/en/latest/) for more details on the library and [changelog](https://github.com/PlotPyStack/PlotPy/blob/master/CHANGELOG.md) for recent history of changes.
Copyrights and licensing:
@@ -41,36 +37,39 @@ The `plotpy` library also provides the following features.
General plotting features:
* Ready-to-use [plot widgets and dialog boxes](https://plotpy.readthedocs.io/en/latest/features/plot/index.html)
-* [pyplot](https://plotpy.readthedocs.io/en/latest/features/pyplot.html): interactive
- plotting widgets, equivalent to `matplotlib.pyplot`, at least for the implemented functions
-* Supported [plot items](https://plotpy.readthedocs.io/en/latest/features/items/index.html):
- curves, images, contours, histograms, labels, shapes, annotations, ...
+* [pyplot](https://plotpy.readthedocs.io/en/latest/features/pyplot.html): interactive plotting widgets, equivalent to `matplotlib.pyplot`, at least for the implemented functions
+* Supported [plot items](https://plotpy.readthedocs.io/en/latest/features/items/index.html): curves, images, contours, histograms, labels, shapes, annotations, ...
Interactive features (i.e. not only programmatic plotting but also with mouse/keyboard):
-* Multiple object selection for moving objects or editing their properties through
- automatically generated dialog boxes
-* Item list panel: move objects from foreground to background, show/hide objects,
- remove objects, ...
+* Multiple object selection for moving objects or editing their properties through automatically generated dialog boxes
+* Item list panel: move objects from foreground to background, show/hide objects, remove objects, ...
* Customizable aspect ratio for images
-* Tons of ready-to-use tools: plot canvas export to image file, image snapshot,
- interval selection, image rectangular filter, etc.
+* Tons of ready-to-use tools: plot canvas export to image file, image snapshot, interval selection, image rectangular filter, etc.
* Curve fitting tool with automatic fit, manual fit with sliders, ...
-* Contrast adjustment panel for images: select the LUT by moving a range selection
- object on the image levels histogram, eliminate outliers, ...
-* X-axis and Y-axis cross-sections: support for multiple images, average
- cross-section tool on a rectangular area, ...
-* Apply any affine transform to displayed images in real-time (rotation,
- magnification, translation, horizontal/vertical flip, ...)
+* Contrast adjustment panel for images: select the LUT by moving a range selection object on the image levels histogram, eliminate outliers, ...
+* X-axis and Y-axis cross-sections: support for multiple images, average cross-section tool on a rectangular area, ...
+* Apply any affine transform to displayed images in real-time (rotation, magnification, translation, horizontal/vertical flip, ...)
Application development helpers:
* Ready-to-use [plot widgets and dialog boxes](https://plotpy.readthedocs.io/en/latest/features/plot/index.html)
* Load/save graphical objects (curves, images, shapes) into HDF5, JSON or INI files
-* A lot of test scripts which demonstrate `plotpy` features
- (see [examples](https://plotpy.readthedocs.io/en/latest/intro/examples.html))
+* A lot of test scripts which demonstrate `plotpy` features (see [examples](https://plotpy.readthedocs.io/en/latest/intro/examples.html))
## Dependencies and installation
-See [Installation](https://plotpy.readthedocs.io/en/latest/intro/installation.html)
-section in the documentation for more details.
+### Supported Qt versions and bindings
+
+The whole PlotPyStack set of libraries relies on the [Qt](https://doc.qt.io/) GUI toolkit, thanks to [QtPy](https://pypi.org/project/QtPy/), an abstraction layer which allows to use the same API to interact with different Python-to-Qt bindings (PyQt5, PyQt6, PySide2, PySide6).
+
+Compatibility table:
+
+| PlotPy version | PyQt5 | PyQt6 | PySide2 | PySide6 |
+|----------------|-------|-------|---------|---------|
+| 2.0-2.5 | ✅ | ⚠️ | ❌ | ⚠️ |
+| Latest | ✅ | ✅ | ❌ | ✅ |
+
+### Other dependencies and installation
+
+See [Installation](https://plotpy.readthedocs.io/en/latest/intro/installation.html) section in the documentation for more details.