What's Changed
Highlights
- With PyQt6 6.3.2+ PyQtGraph uses sip.array, which leads to significantly faster draw performance by @pijyoi in #2314
- Introducing "interactive" parameter trees by @ntjess in #2318
- Minimum Qt version now 5.15 for Qt5 and 6.2+ for Qt6 by @j9ac9k in #2403
- with
enableExperimental
pyqtgraph accesses QPainterPathPrivate for faster QPainterPath generation by @pijyoi in #2324
New Features
- Interactive params fixup by @ntjess in #2318
- Added possibility to use custom dock labels by @ardiloot in #2274
- Introduce API option to control whether lines are drawn as segmented lines by @swvanbuuren in #2185
- access QPainterPathPrivate for faster arrayToQPath by @pijyoi in #2324
- Update LabelItem to allow transparency in the text by @ElpadoCan in #2300
- Make parameter tree read-only values selectable and copiable by @ardiloot in #2311
- Have CSV exporter export error bar information by @j9ac9k in #2405
- map pyqtgraph symbols to a matplotlib equivalent by @pijyoi in #2395
Performance Improvements
- Improve performance of PlotCurveItem with QOpenGLWidget by @bbc131 in #2264
- ScatterPlotItem: use Format_ARGB32_Premultiplied by @pijyoi in #2317
- access QPainterPathPrivate for faster arrayToQPath by @pijyoi in #2324
- make use of PyQt sip.array by @pijyoi in #2314
Bug Fixes
- Fix GLImageItem regression by @pijyoi in #2232
- Fixed the app crash on right clicked by @Cosmicoppai in #2236
- Fix Regression in in ViewBox.updateScaleBox Caused by #2034 by @campagnola in #2241
- Fix UFuncTypeError when plotting integer data on windows by @campagnola in #2249
- Fixed division by zero when no pixmap is loaded by @StSav012 in #2275
- Ensure in PlotCurveItem lookup occurs in tuple, not str by @j9ac9k in #2294
- Fixed a crash when
step
option is missing by @StSav012 in #2261 - Invalidate cached properties on geometryChanged signal by @j9ac9k in #2357
- Bugfix: Handle example search failure due to bad regex by @ntjess in #2121
- Address #2303 unapplied pen parameter constructor options by @ntjess in #2305
- Issue #2203 Potential Fix: Disabled FlowchartCtrlWidget.nodeRenamed o… by @HallowedDust5 in #2301
- Fix #2289 unwanted growing in scene context menu by @ntjess in #2306
- #2283 delete limitation by rectangle width ROI by @sasha-sem in #2285
- Update exception handling to catch exceptions in threads (py3 change) by @campagnola in #2309
- Fix PlotCurveItem errors when pen=None by @campagnola in #2315
- ScatterPlotItem point masking fix by @ardiloot in #2310
- Use property to lazily declare rectangle by @j9ac9k in #2356
- Fix missing import in Flowchart.py by @Puff-Machine in #2421
- Fix doubling labels in DateAxisItem by @bbc131 in #2413
- GridItem: Fix pen for usage of dash-pattern by @bbc131 in #2304
- Update PColorMeshItem.py by @LarsVoxen in #2327
- Fix infinite loop within DateAxisItem by @bbc131 in #2365
- Fix GraphicsScene.itemsNearEvent and setClickRadius by @bbc131 in #2383
- Modify MatplotlibWidget to accept QWidget super constructor parameters. by @Dolphindalt in #2366
- Fix flickering, when panning/scrolling in a fully zoomed-out view by @bbc131 in #2387
- Make auto downsample factor calculation more robust by @StSav012 in #2253
- Fix : QPoint() no longer accepts float arguments by @campagnola in #2260
- avoid double init of DockDrop by @pijyoi in #2286
- Add a few ImageView improvements by @outofculture in #1828
API/Behavior Changes
- remove border QGraphicsRectItem from scene by @pijyoi in #2225
- Introduce API option to control whether lines are drawn as segmented lines by @swvanbuuren in #2185
- Modify CSV exporter to output original data without log mapping by @NilsNemitz in #2297
- Expose useCache ScatterPlotItem option from plot method by @ibrewster in #2258
- remove legend items manually from scene by @pijyoi in #2368
getHistogramRange
forHistogramLUTItem
by @kremeyer in #2397- Axis pen improvements by @ibrewster in #2398
- remove MatplotlibWidget from pg namespace by @pijyoi in #2400
- change the libOrder to favor Qt6 by @Wubbzi in #2157
Examples
- Added Jupyter console widget and Example by @jonmatthis in #2353
- Add glow example by @edumur in #2242
- update multiplePlotSpeedTest.py to use PlotCurveItem instead of QGraphicsPathItem by @pijyoi in #2426
Docs
- Add GLTextItem to docs by @jebguth in #2419
- Add logo to docs by @ixjlyons in #2384
- Enable nit-picky mode in documentation and fix associated warnings by @j9ac9k in #1753
- Added UML class diagram to give overview of the most important classes by @titusjan in #1631
Other
- Remove old Qt workarounds by @pijyoi in #2224
- Track when ScatterPlotItem clears the tooltip, only clear when needed by @ixjlyons in #2235
- Avoid import error in HDF5 exporter by @campagnola in #2259
- test enum using : "enums & enum" by @pijyoi in #2250
- add support for PySide6 6.3.0 QOverrideCursorGuard by @pijyoi in #2263
- Used the power of
blockIfUnchanged
decorator by @StSav012 in #2181 - Handle/remove unused variables by @ksunden in #2094
- BusyCursor and QPainter fixes for PyPy by @pijyoi in #2349
- Add a pyi stub file to import best-guess pyqt type hints by @outofculture in #2358
- test_PlotCurveItem: unset skipFiniteCheck for next test by @pijyoi in #2313
- lazy create the rectangle selection item by @danielhrisca in #2168
- fix: super().init does not need self by @pijyoi in #2359
- Promote interactive
Run
action to group level by @ntjess in #2414 - Enhance testing for creating parameters from saved states by @ntjess in #2319
- add support for PySide6's usage of Python Enums by @pijyoi in #2329
- remove QFileDialog PyQt4 compatibility code by @pijyoi in #2394
- Bugfix:
interact
on decorated method that usesself
. by @ntjess in #2408 - use single generic template for all bindings by @pijyoi in #2226
interact()
defaults toON_ACTION
behavior and acceptsrunActionTemplate
argument by @ntjess in #2432
New Contributors
- @andriyor made their first contribution in #2212
- @keziah55 made their first contribution in #2191
- @Cosmicoppai made their first contribution in #2236
- @bbc131 made their first contribution in #2264
- @StSav012 made their first contribution in #2181
- @ardiloot made their first contribution in #2274
- @sasha-sem made their first contribution in #2285
- @swvanbuuren made their first contribution in #2185
- @Anatoly1010 made their first contribution in #2330
- @LarsVoxen made their first contribution in #2327
- @HallowedDust5 made their first contribution in #2301
- @ElpadoCan made their first contribution in #2300
- @dependabot made their first contribution in #2342
- @jaj42 made their first contribution in #2389
- @Dolphindalt made their first contribution in #2366
- @kremeyer made their first contribution in #2397
- @jonmatthis made their first contribution in #2353
- @jebguth made their first contribution in #2419
- @Puff-Machine made their first contribution in #2421
Full Changelog: pyqtgraph-0.12.4...pyqtgraph-0.13.0