ec66c34fc9
Items added to a `GraphicsLayout` only learn their size information after the internal `QGraphicsGridLayout` recalculates the layout. This is happening as a slot in the Qt event queue. Not having updated geometry bounds directly after adding an item leads to multiple issues when not executing the Qt event loop in time (see below). This commit fixes that by always calling `layout.activate()` after adding items, updating item sizes directly. This is a follow-up to PR #1167, where introducing a direct call to `processEvents` was suspected to be able to cause side effects. Notifying @j9ac9k and @campagnola, as they were involved in #1167. Fixes #8 Fixes #1136 |
||
---|---|---|
.github/ISSUE_TEMPLATE | ||
doc | ||
examples | ||
pyqtgraph | ||
tools | ||
.coveragerc | ||
.flake8 | ||
.gitignore | ||
.pre-commit-config.yaml | ||
azure-pipelines.yml | ||
azure-test-template.yml | ||
CHANGELOG | ||
CONTRIBUTING.md | ||
LICENSE.txt | ||
MANIFEST.in | ||
pytest.ini | ||
README.md | ||
setup.py | ||
test.py | ||
tox.ini |
PyQtGraph
A pure-Python graphics library for PyQt/PySide/PyQt5/PySide2
Copyright 2019 Luke Campagnola, University of North Carolina at Chapel Hill
PyQtGraph is intended for use in mathematics / scientific / engineering applications. Despite being written entirely in python, the library is fast due to its heavy leverage of numpy for number crunching, Qt's GraphicsView framework for 2D display, and OpenGL for 3D display.
Requirements
- PyQt 4.8+, PySide, PyQt5, or PySide2
- PySide2 5.14 does not have loadUiType functionality, and thus the example application will not work. You can follow along with restoring that functionality here.
- Python 2.7, or 3.x
- Required
numpy
- Optional
scipy
for image processingpyopengl
for 3D graphics- macOS with Python2 and Qt4 bindings (PyQt4 or PySide) do not work with 3D OpenGL graphics
pyqtgraph.opengl
will be depreciated in a future version and replaced withVisPy
hdf5
for large hdf5 binary format support
- Known to run on Windows, Linux, and macOS.
Qt Bindings Test Matrix
The following table represents the python environments we test in our CI system. Our CI system uses Ubuntu 18.04, Windows Server 2019, and macOS 10.15 base images.
Qt-Bindings | Python 2.7 | Python 3.6 | Python 3.7 | Python 3.8 |
---|---|---|---|---|
PyQt-4 | ✅ | ❌ | ❌ | ❌ |
PySide1 | ✅ | ❌ | ❌ | ❌ |
PyQt-5.9 | ❌ | ✅ | ❌ | ❌ |
PySide2-5.13 | ❌ | ❌ | ✅ | ❌ |
PyQt-5.14 | ❌ | ❌ | ❌ | ✅ |
- pyqtgraph has had some incompatabilities with PySide2-5.6, and we recommend you avoid those bindings if possible
- on macOS with Python 2.7 and Qt4 bindings (PyQt4 or PySide) the openGL related visualizations do not work
Support
- Report issues on the GitHub issue tracker
- Post questions to the mailing list / forum or StackOverflow
Installation Methods
- From PyPI:
- Last released version:
pip install pyqtgraph
- Latest development version:
pip install git+https://github.com/pyqtgraph/pyqtgraph@develop
- Last released version:
- From conda
- Last released version:
conda install pyqtgraph
- Last released version:
- To install system-wide from source distribution:
python setup.py install
- Many linux package repositories have release versions.
- To use with a specific project, simply copy the pyqtgraph subdirectory anywhere that is importable from your project.
- For installation packages, see the website (pyqtgraph.org)
Documentation
The easiest way to learn pyqtgraph is to browse through the examples; run python -m pyqtgraph.examples
for a menu.
The official documentation lives at http://pyqtgraph.org/documentation