Go to file
ntjess 81823768c0
feature More parameter item types (#1844)
* feature More parameter item types

Pen: Pops up a dialouge that allows the user to customize a pen. Setting pen value is not working yet.
Progress bar: For indication things.
Slider: Easier way to set values that dont require precision.
Fonts: Picking font types. Next thing could be a Font dialog.
Calendar: For picking dates or intervals
Open/save file/files/directory: Pops up an open/save file/directory dialog to select a file/directory. Filter string and caption can be defined too.

A PenSelectorDialog widget was created for the pen parameter item too.

Also added these parameter items to the example.

* PyQt/Side6 compatibility fixup

* Revisions from intial PR

Co-authored-by: ChristophRose <42769515+ChristophRose@users.noreply.github.com>

Update pyqtgraph/widgets/PenSelectorDialog.py

Co-authored-by: ChristophRose <42769515+ChristophRose@users.noreply.github.com>

Update pyqtgraph/widgets/PenSelectorDialogbox.py

Co-authored-by: ChristophRose <42769515+ChristophRose@users.noreply.github.com>

Update pyqtgraph/widgets/PenSelectorDialogbox.py

Co-authored-by: ChristophRose <42769515+ChristophRose@users.noreply.github.com>

Update pyqtgraph/widgets/PenSelectorDialogbox.py

Co-authored-by: ChristophRose <42769515+ChristophRose@users.noreply.github.com>

Update pyqtgraph/parametertree/parameterTypes.py

Co-authored-by: ChristophRose <42769515+ChristophRose@users.noreply.github.com>

Update pyqtgraph/parametertree/parameterTypes.py

Co-authored-by: ChristophRose <42769515+ChristophRose@users.noreply.github.com>

Update pyqtgraph/widgets/PenSelectorDialog.py

Co-authored-by: ChristophRose <42769515+ChristophRose@users.noreply.github.com>

Update pyqtgraph/widgets/PenSelectorDialogbox.py

Co-authored-by: ChristophRose <42769515+ChristophRose@users.noreply.github.com>

Update pyqtgraph/widgets/PenSelectorDialogbox.py

Co-authored-by: ChristophRose <42769515+ChristophRose@users.noreply.github.com>

Update pyqtgraph/widgets/PenSelectorDialogbox.py

Co-authored-by: ChristophRose <42769515+ChristophRose@users.noreply.github.com>

Update pyqtgraph/widgets/PenSelectorDialogbox.py

Co-authored-by: ChristophRose <42769515+ChristophRose@users.noreply.github.com>

Apply suggestions from code review

Co-authored-by: ChristophRose <42769515+ChristophRose@users.noreply.github.com>

* Bugfix: module instead of class import on param tree example

* Enrich the slider parameter

* Address pijyoi comments on pen style parameter

* Different file picker for easier porting

* Better organization and formatting, minor refactoring

* PyQt6/PySide6 fixup for file dialog

* Minor adjustment to file picker

* Bugfix: for 'None' sigChanged

'None' is explicitly allowed for a WidgetParameterItem's `sigChanged` value. However, this raises an error on a changed value unless the commit's fix is applied

* Calendar works better as sub item

* Fixes bugs in pen parameter's dialog + makes it resizable

* more bugfixes and recommended changes, lets pen serialize its options

* better pen save state

* Fixes file parameter qualms

* Fixes font parameter qualms

* Fixes calendar parameter qualms

* Fixes multiply-defined slider optsChanged

* Fixes pen parameter qualms

* ptree example minor bugfix

* Pen dialog bugfixes

* File dialog bugfixes / mild improvements

* unto ptree save state regression

* file fixup

* Adds parameter descriptions to docstrings

* Improved parameter documentation

* adds 'relativeTo' option for file parameter

* Less abuse of Qt enums during or-operations

* More uniform handling of relative paths

* More cleanup of enum setting

* better name for window title (matches qt name)

* Favor os.path over pathlib

* Exposes 'directory', 'windowTitle' to file parameter

* Fixup and add comparison to parameter tree state restoration

* Exposes "cosmetic" in pen parameter

* Indicate defaults in parameter documentation

* QtEnumParameter works for enums outside QtCore.Qt

* see if altering pytest report fixes ci bug

* Cleanup unused import and redundant `self.widget` assignments

Co-authored-by: Fekete Imre <feketeimre87@gmail.com>
Co-authored-by: ChristophRose <42769515+ChristophRose@users.noreply.github.com>
2021-07-23 14:40:49 -07:00
.github feature More parameter item types (#1844) 2021-07-23 14:40:49 -07:00
benchmarks Bypass makeARGB in some cases (#1786) 2021-05-19 17:21:12 -07:00
doc feature More parameter item types (#1844) 2021-07-23 14:40:49 -07:00
examples feature More parameter item types (#1844) 2021-07-23 14:40:49 -07:00
pyqtgraph feature More parameter item types (#1844) 2021-07-23 14:40:49 -07:00
tests Add option to limit LinearRegionitem bounds to a secondary item (#1834) 2021-07-17 21:02:06 -07:00
tools push bullet lists over 2 spaces to get them to show up as such in the… (#1912) 2021-07-21 07:12:35 -07:00
.coveragerc MNT: hard code the coverage report location 2015-08-01 11:54:15 -04:00
.flake8 Improve target item - incorporate bits from PR 313 (#1318) 2021-04-10 22:42:44 -07:00
.gitignore Protect makeARGB with tests and benchmarks (#1697) 2021-04-15 15:51:21 -07:00
.pre-commit-config.yaml Expand CI + pre-commit (#991) 2019-08-29 13:56:25 -07:00
.readthedocs.yml Add readthedocs config file as recommended 2020-05-17 16:06:00 -07:00
CHANGELOG Add one more PR to the changelog 2021-07-07 22:47:49 -07:00
CODE_OF_CONDUCT.md Add a Code of Conduct (#1773) 2021-05-13 15:37:07 -07:00
CONTRIBUTING.md Update contributing guide ahead of scipy sprints 2021-07-15 20:42:32 -07:00
LICENSE.txt - Major reorganization; we now follow the standard python package structure. 2012-12-26 17:51:52 -05:00
MANIFEST.in manifest corrections 2014-12-24 11:05:05 -05:00
pytest.ini Fix unraisable exception in test_examples 2021-05-31 21:06:16 -07:00
README.md Clean up redundancy in README 2021-07-11 09:57:09 -07:00
setup.py Extend ColorMap with HSL cycles and subset generation (#1911) 2021-07-23 14:38:17 -07:00
test.py exampleLoaderTemplate.ui : add Qt6 and remove Qt4 2021-01-23 11:43:34 +08:00
tox.ini Update tox.ini config 2021-04-16 22:18:11 -07:00

PyQtGraph

PyPi conda-forge Build Status CodeQL Status Documentation Status Total alerts Language grade: Python

A pure-Python graphics library for PyQt5/PyQt6/PySide2/PySide6

Copyright 2020 Luke Campagnola, University of North Carolina at Chapel Hill

http://www.pyqtgraph.org

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

PyQtGraph has adopted NEP 29.

This project supports:

  • All minor versions of Python released 42 months prior to the project, and at minimum the two latest minor versions.
  • All minor versions of numpy released in the 24 months prior to the project, and at minimum the last three minor versions.
  • All Qt5 versions from 5.12-5.15, and Qt6 6.1

Currently this means:

Optional added functionalities

Through 3rd part libraries, additional functionality may be added to PyQtGraph, see the table below for a summary.

Library Added functionality
scipy
  • Image processing through ndimage
  • Data array filtering through signal
    pyopengl
    • 3D graphics
    • Faster image processing
    • Note: on macOS Big Sur only works with python 3.9.1+
    h5py
    • Export in hdf5 format
    colorcet
    • Add a collection of perceptually uniform colormaps
    matplotlib
    • Export of PlotItem in matplotlib figure
    • Add matplotlib collection of colormaps
    cupy
    • CUDA-enhanced image processing
    • Note: On Windows, CUDA toolkit must be >= 11.1
    numba
    • Faster image processing

    Qt Bindings Test Matrix

    The following table represents the python environments we test in our CI system. Our CI system uses Ubuntu 20.04, Windows Server 2019, and macOS 10.15 base images.

    Qt-Bindings Python 3.7 Python 3.8 Python 3.9
    PySide2-5.12
    PyQt5-5.12
    PySide2-5.15
    PyQt5-5.15
    PySide6-6.1
    PyQt6-6.1
    • - Not compatible
    • - Tested

    Support

    Installation Methods

    • From PyPI:
      • Last released version: pip install pyqtgraph
      • Latest development version: pip install git+https://github.com/pyqtgraph/pyqtgraph@master
    • From conda
      • Last released version: conda install -c conda-forge pyqtgraph
    • 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.

    Documentation

    The official documentation lives at pyqtgraph.readthedocs.io

    The easiest way to learn PyQtGraph is to browse through the examples; run python -m pyqtgraph.examples to launch the examples application.

    Used By

    Here is a partial listing of some of the applications that make use of PyQtGraph!

    Do you use PyQtGraph in your own project, and want to add it to the list? Submit a pull request to update this listing!