Commit Graph

282 Commits

Author SHA1 Message Date
Luke Campagnola 9bff2b23fb Add a signal for detecting scatter plot point clicks in ScatterPlotWidget 2018-02-01 11:43:46 -08:00
Luke Campagnola 677d9fa4b4
Merge pull request #597 from campagnola/fractal-demo
Add an interactive fractal demo
2018-01-25 08:59:28 -08:00
Luke Campagnola 6773449e43
Merge pull request #620 from campagnola/fix-spinbox-units
Fix spinbox units
2018-01-25 08:47:07 -08:00
Luke Campagnola a812d802da Fix bug when spinbox units begin with an SI prefix (like 'PSI') 2018-01-24 09:12:10 -08:00
Luke Campagnola 0653c8ec59 Add example and test demonstrating spinbox bug 2018-01-24 09:11:42 -08:00
Luke Campagnola 52754d4859 fix __getattr__ handling in PlotWindow 2018-01-24 09:06:05 -08:00
Luke Campagnola 7be6f1e70c fix: error when using SpinBox(delay) argument 2017-10-18 00:18:07 -07:00
Luke Campagnola c678094f25 Make TreeWidget.invisibleRootItem return a singleton 2017-10-17 10:47:41 -07:00
Luke Campagnola 8a882b516a Fix: InvisibleRootItem is no longer a subclass of QTreeWidgetItem
The __getattr__ method is supposed to wrap attributes from the internal TreeWidgetItem,
but this was broken because the superclass had already implemented these.
2017-10-05 10:46:39 -07:00
Luke Campagnola f160494127 Merge pull request #591 from campagnola/nested-progress-dialog
Nested progress dialog
2017-10-04 10:13:22 -07:00
Luke Campagnola 952c679a61 Merge pull request #518 from campagnola/treewidget-updates
Treewidget updates
2017-10-04 09:39:56 -07:00
Luke Campagnola c33d451974 Merge pull request #582 from acq4/combobox-save
Add Combobox save/restoreState methods
2017-10-04 09:37:03 -07:00
Luke Campagnola 29d19e5172 Merge pull request #587 from acq4/pathbutton-margin
Make PathButton margin customizable
2017-10-04 09:29:42 -07:00
Luke Campagnola e2c9918510 docs cleanup 2017-10-04 09:11:44 -07:00
Luke Campagnola d2942c7aca Fix: obey nested option 2017-10-04 09:06:05 -07:00
Luke Campagnola 384975dd46 Cleanup 2017-10-04 09:03:08 -07:00
Luke Campagnola 7c1a6ecb1a Prevent dialog from moving label/bar widgets on resize when nested 2017-10-04 09:01:51 -07:00
Luke Campagnola e6507f8601 try a different approach to managing nested bars.. 2017-10-03 17:14:32 -07:00
Luke Campagnola f4c3d88251 Add option to join nested progress dialogs into a single window 2017-10-03 15:22:31 -07:00
Luke Campagnola 3609f9df3e Fix colormapwidget saveState 2017-09-29 08:51:26 -07:00
Luke Campagnola e7a92f4720 Add Combobox save/restoreState methods
Also allow tuple as input type in addition to list
2017-09-29 08:50:12 -07:00
Luke Campagnola a2bb944e78 Make PathButton margin customizable 2017-09-29 08:48:35 -07:00
Luke Campagnola 8398e578b9 Add a collapsible QGroubBox widget 2017-09-03 16:48:08 -07:00
Luke Campagnola ea51a65dfd Send click events to treewidgetitem 2017-07-31 10:03:13 -07:00
Luke Campagnola f5775422c6 py3 fix 2017-07-28 16:18:31 -07:00
Luke Campagnola 3fbc3864f2 Wrap TreeWidget's invisible root item so that child items will receive tree change notifications 2017-07-28 16:05:58 -07:00
Luke Campagnola 6c7e0fae8e Add signals for TreeWidget changes in check state, text, and columncount 2017-07-28 14:40:20 -07:00
Matthew Shun-Shin 82b666e2ee Fix GL Views being half size on hidpi monitors 2017-07-28 11:30:19 +01:00
kiwi0fruit 54ddb79e89 Bug-fix and small changes in RawImageWidget.py
1. Bug was in the `def paintGL(self)` method (at least with PySide1): image was mirrored upside down.
2. Added support for `setConfigOptions(imageAxisOrder='row-major')`
3. Small cosmetic changes
2017-06-27 20:53:08 +07:00
kiwi0fruit 8a40c22848 Bug in RawImageWidget.py
For example: it prevents integration of this widget to Enaml.
2017-06-22 16:00:54 +07:00
Lorenz Drescher 9a05b74f25 Correct wrong function call in LayoutWidget.addLabel and LayoutWidget.addLayout
Previously LayoutWidget.addLabel and LayoutWidget.addLayout called a function "addItem", that didn't exist. Corrected to call LayoutWidget.addWidget.

This fixes #242
2017-04-21 17:41:22 +02:00
Luke Campagnola 6cdad190ab Merge remote-tracking branch 'campagnola/develop' into datatree-arrays 2017-01-16 11:34:42 -08:00
Luke Campagnola de0ee32a20 minor doc / test edits 2016-12-09 10:20:19 -08:00
Luke Campagnola 95de07b48a Merge remote-tracking branch 'lidstrom83/SpinBox_wrapping' into spinbox-formatting 2016-12-09 10:07:28 -08:00
Luke Campagnola cd7683b61d Fix unit tests 2016-12-08 10:14:18 -08:00
Luke Campagnola e5a17edb4d Add spinbox 'regex' and 'evalFunc' options to complete user-formatting functionality 2016-12-08 10:12:45 -08:00
Luke Campagnola 9823436273 Add spinbox option to limit height based on font size 2016-12-07 17:34:12 -08:00
Luke Campagnola 6b798ffed8 Fix multiple spinbox problems:
- fixed bug with exponents disappearing after edit
 - fixed parsing of values with junk after suffix
 - fixed red border
 - reverted default decimals to 6
 - make suffix editable (but show red border if it's wrong)
 - revert invalid text on focus lost
 - siPrefix without suffix is no longer allowed
 - let user set arbitrary format string
2016-12-06 22:29:22 -08:00
Luke Campagnola 5ddbb611d1 spinbox selects only numerical portion of text on focus-in 2016-11-30 09:18:09 -08:00
Luke Campagnola c97c5f51e2 Add spinbox option for custom formatting 2016-11-30 09:16:56 -08:00
Luke Campagnola e26fb1f9de Add first spinbox tests 2016-11-29 17:45:42 -08:00
Ales Erjavec 0bc711b31f Revert "ignore wheel events in GraphicsView if mouse disabled"
This reverts commit f49c179275.

On Qt 5.7 ignoring the initial `wheelEvent` when `phase() ==
Qt.ScrollBegin` suppresses all intermediate events (`Qt.ScrollUpdate`)
from being delivered to the view. This makes ViewBox zooming
unresponsive.
2016-11-10 11:22:52 +01:00
Luke Campagnola fcdc2a74ad Fix import error in MatplotlibWidget 2016-11-01 20:42:11 -07:00
Luke Campagnola a0e4301b38 Fix VideoSpeedTest to disable RawImageGLWidget when openGL is unavailable 2016-10-26 09:26:01 -07:00
Luke Campagnola 56efcbe981 Workaround for pyopengl import error 2016-10-25 21:03:09 -07:00
Max Peng 8bdc19be75 update to support pyside2 2016-09-25 00:16:36 +08:00
Luke Campagnola 4b9f1a20a4 Merge pull request #370 from campagnola/image-alignment
Image alignment
2016-09-07 23:18:51 -07:00
Luke Campagnola bee5878915 Added imageAxisOrder config option
Added global config documentation
ROIs don't exactly work yet..
2016-08-23 09:06:43 -07:00
Luke Campagnola f49554d063 Merge pull request #304 from cboulay/osx_mremap
OSX RemoteGrahpics.py: Add shared mem file open and close to get around no mremap.
2016-04-21 00:35:31 -07:00
Chadwick Boulay a8d3aad97a Add darwin-specific shared mem file open and close in RemoteGraphicsView.py to account for lack of mremap on platform. 2016-03-29 18:24:16 -04:00
Eric Dill 1a22ce3c04 MNT: Call close() up the inheritance chain 2016-03-28 08:14:24 -04:00
Luke Campagnola 215b39a59d Merge pull request #219 from rabryan/wheel-event-ignore
Ignore wheel events in GraphicsView if mouse disabled
2015-12-20 21:14:11 -08:00
dlidstrom d461bf866f Add wrapping option to SpinBox 2015-10-25 03:51:55 -06:00
Kenneth Lyons 0904fb4b61 Pass TableWidget key press events to the parent class to allow for arrow key and tab navigation. 2015-10-24 23:14:32 -07:00
Richard Bryan f49c179275 ignore wheel events in GraphicsView if mouse disabled
- this allows parent dialogs to receive these events
if they need to
2015-08-25 10:06:39 -04:00
Luke Campagnola f34b69e660 Fix #92 (thanks jaxankey) 2015-06-03 22:18:02 -04:00
Luke Campagnola 0976991efd Import from python2_3 for all uses of basestring, cmp, and xrange 2015-05-19 09:29:55 -04:00
dlidstrom 96e06f212a Provide widgetGroupInterface to GradientWidget 2015-03-16 14:03:58 -06:00
dlidstrom f470a830d0 Optionally provide custom PlotItem to PlotWidget. 2015-03-14 17:30:56 -06:00
Luke Campagnola 8e1c3856ea Added more examples to menu
Minor edits
2015-03-01 16:52:15 -05:00
Luke Campagnola 1fe5976e19 Merge branch 'pyqt5' into develop
Conflicts:
	examples/parametertree.py
	pyqtgraph/Qt.py
	pyqtgraph/graphicsItems/FillBetweenItem.py
	pyqtgraph/graphicsItems/InfiniteLine.py
	pyqtgraph/imageview/ImageView.py
2015-02-28 11:46:41 -05:00
compass 00092d99d4 Add pyqt5 support for MatplotlibWidget 2015-01-17 18:34:30 +08:00
cjtk ef6cd9be88 Fix bug in LayoutWidget.py
getWidget tries to get self.row which doesn't exist, get self.rows instead
2014-12-31 10:32:36 +11:00
Luke Campagnola f6ded808ef Fixed a few exit crashes, added unit tests to cover them 2014-11-26 21:25:17 -05:00
Luke Campagnola ad10b06652 Correction for spinbox auto-selection without suffix 2014-11-14 07:46:10 -05:00
Luke Campagnola 2d78ce6f87 Fix attributeerror when using spinbox in parametertree 2014-11-14 07:42:17 -05:00
Luke Campagnola 9893fc3735 corrections for 1d arrays 2014-09-26 15:25:05 -04:00
Luke Campagnola 4543031ac5 Added DiffTreeWidget 2014-09-25 17:26:06 -04:00
Luke Campagnola cabd9d6bf2 Cleanup, better support for tracebacks in DataTreeWidget 2014-09-25 15:21:28 -04:00
Luke Campagnola 8c0064a323 DataTreeWidget uses TableWidget to represent arrays 2014-09-25 11:58:49 -04:00
Luke Campagnola 753ac9b4c4 Squashed commit of the following:
commit ca3fbe2ff9
Author: Luke Campagnola <luke.campagnola@gmail.com>
Date:   Thu Aug 7 08:41:30 2014 -0400

    Merged numerous updates from acq4:
    * Added HDF5 exporter
    * CSV exporter gets (x,y,y,y) export mode
    * Updates to SVG, Matplotlib exporter
    * Console can filter exceptions by string
    * Added tick context menu to GradientEditorItem
    * Added export feature to imageview
    * Parameter trees:
        - Option to save only user-editable values
        - Option to set visible title of parameters separately from name
        - Added experimental ParameterSystem for handling large systems of
            interdependent parameters
        - Auto-select editable portion of spinbox when editing
    * Added Vector.__abs__
    * Added replacement garbage collector for avoiding crashes on multithreaded Qt
    * Fixed "illegal instruction" caused by closing file handle 7 on OSX
    * configfile now reloads QtCore objects, Point, ColorMap, numpy arrays
    * Avoid triggering recursion issues in exception handler
    * Various bugfies and performance enhancements
2014-08-07 09:03:26 -04:00
Luke Campagnola 5cea58545f Fixed mouse wheel in RemoteGraphicsView + PySide 2014-04-20 14:04:33 -04:00
Luke Campagnola 12d1a5dccf Added configurable formatting for TableWidget 2014-04-12 11:54:23 -04:00
Luke Campagnola f54dac6c70 cleanup 2014-04-11 23:43:45 -04:00
Luke Campagnola df8562ce55 Fixed TableWidget append / sort issues 2014-04-11 21:29:15 -04:00
Luke Campagnola e46439b903 minor docstring updates 2014-04-11 10:54:21 -04:00
Luke Campagnola 89c04c8a81 Corrected bug in multiprocess causing deadlock at exit
Multiprocess debugging messages now use one color per process
Corrected RemoteGraphicsView not setting correct pg options on remote
process

New debugging tools:
* util.cprint for printing color on terminal (based on colorama)
* debug.ThreadColor causes each thread to print in a different color
* debug.PeriodicTrace used for debugging deadlocks
* Mutex for detecting deadlocks
2014-03-14 14:18:46 -04:00
Luke Campagnola 2e3cfcbd6d Make setPen() methods more consistent throughout the package.
Merge remote-tracking branch 'termim/develop' into develop

Conflicts:
	pyqtgraph/graphicsItems/ROI.py
2014-03-01 09:37:59 -05:00
Luke Campagnola c72638ab1b Merge branch 'tommy3001-doc-updates' into develop
Conflicts:
	pyqtgraph/graphicsItems/AxisItem.py
	pyqtgraph/graphicsItems/PlotDataItem.py
	pyqtgraph/graphicsItems/ROI.py
2014-02-28 21:07:43 -05:00
Mikhail Terekhov 953b9e4129 Make signature of the setPen method consistent 2014-02-28 16:16:13 -05:00
tommy3001 78d92b383f Aditional ":" added, minor list alignments 2014-02-12 21:25:31 +01:00
Sol Simpson 24cf9ada2c BF: unicode fix for TableWidget
Setting a table item value to a unicode value with non ascii chars would
cause the tablewidget contents to not be displayed (no exception thrown
either).

Changed all instances of str(..) or map(str,...) to use asUnicode and
issue seems to be fixed
2014-02-12 04:04:06 -05:00
tommy3001 f99fdaf2ce Merge remote-tracking branch 'remotes/upstream/develop' into develop 2014-02-08 08:50:17 +01:00
Luke Campagnola 193367a56b Signal cleanup:
- Renamed GraphicsView signals to avoid collision with ViewBox signals that
  are wrapped in PlotWidget: sigRangeChanged => sigDeviceRangeChanged and
  sigTransformChanged => sigDeviceTransformChanged.
- All signal disconnections that catch TypeError now also catch RuntimeError
  for pyside compatibility.
2014-02-07 10:38:41 -05:00
tommy3001 2a13994a2a Bugfix: Malformed tables.
All argument lists with `**Arguments:**`
2014-02-05 21:04:33 +01:00
tommy3001 2279775244 Merge branch 'develop' of https://github.com/pyqtgraph/pyqtgraph into develop 2014-02-05 20:06:22 +01:00
Luke Campagnola 9093282a2a Wrap setLimits in PlotItem and PlotWidget 2014-02-04 20:28:23 -05:00
tommy3001 92d7bbe18e In list tables "**Arguments**", "Arguments:" changed to **Arguments:** 2014-02-03 21:13:10 +01:00
Luke Campagnola d86beb5a5a Added setMinimumPlotHeight method, set default min height to 50px. 2014-01-25 08:58:54 -05:00
Luke Campagnola 5a1a663a50 MultiPlotWidget now uses scroll bar when plots do not fit in widget area. 2014-01-25 08:50:31 -05:00
Luke Campagnola d4364ea17a Fix MultiPlotWidget wrapping methods incorrectly. 2014-01-25 07:37:04 -05:00
Luke Campagnola 2aac1faa17 fixes for python3 2013-12-27 22:32:05 -05:00
Luke Campagnola 2c2135a49f Major updates to ComboBox:
- Essentially a graphical interface to dict; all items have text and value
- Assigns previously-selected text after list is cleared and repopulated
- Get, set current value
2013-12-27 21:06:31 -05:00
Luke Campagnola cf312e7bac updated widgets 2013-12-22 02:18:37 -05:00
Luke Campagnola d34bdb1be7 corrected GradientWidget.__all__ 2013-11-22 09:33:02 -05:00
Luke Campagnola 5b156cd3d3 Fixes for multiprocess / RemoteGraphicsView:
- Process now optionally wraps stdout/stderr from child process to
  circumvent a python bug
- Added windows error number for port-in-use check
- fixed segv caused by lost QImage input in pyside
2013-11-17 22:32:15 -05:00
Luke Campagnola 1418358bfb Fixed RemoteGraphicsView passing mouse events on python3 + pyside 2013-11-17 14:12:00 -05:00
Luke Campagnola 08be09ee40 Fixed RemoteGraphicsView on windows
- Avoid using authkey on windows; seems to be broken
 - Included yet another method of accessing shared memory as QImage
2013-11-17 09:27:55 -07:00
Luke Campagnola 31928e70a5 Bugfixes:
- GraphicsView.render now correctly invokes GraphicsScene.prepareForPaint
 - Fixed RemoteGraphicsView renderer to use new PyQt QImage API.
 - multiprocess.Process now pipes stdout/err directly to console when in debugging mode
2013-11-06 23:14:27 -05:00
Luke Campagnola 881589468d Python 3 bugfixes 2013-09-10 00:31:43 -04:00
Guillaume Poulin c02e6184ef merge inp 2013-09-05 00:28:03 +08:00
Luke Campagnola 42553854a9 pg.plot() and pg.PlotWidget() now accept background argument
ImageExporter correctly handles QBrush with style=NoBrush
2013-08-23 22:27:09 -06:00
Luke Campagnola 824e4b378b Corrected behavior of GraphicsView.setBackground 2013-08-23 22:08:32 -06:00
Luke Campagnola 7cd3e663f9 experimental GL video widget
temporary fix for text parameter ignoring expanded option
Don't use os.EX_OK in pg.exit()
2013-07-10 00:02:16 -04:00
Guillaume Poulin f2d0991102 Minor fixes for py3k 2013-07-04 05:52:16 +08:00
Luke Campagnola 6e253e409b merge from acq4:
- Support for dynamic downsampling and view clipping in PlotDataItem / PlotItem
  - fixed __truediv__ handling
  - ViewBox updates to fix aspect locking (still broken)
  - AxisItem tries to be more clever about when to display tick text
  - Fix segmentation fault caused by exception inside GraphicsItem.paint()
  - Added 'x' scatter plot symbol
  - pg.mkPen supports dashes
2013-07-03 11:36:07 -04:00
Luke Campagnola 8c13a3e7e3 copy from acq4 2013-07-03 11:20:49 -04:00
Luke Campagnola 7a7288b6b3 Fixed documentation for 'uver/under' in DockArea
Configure matplotlib to use PySide in MatplotlibWidget
2013-05-28 15:31:10 -04:00
Luke Campagnola 09b16baed1 python3 fixes
imageview fix
2013-05-13 08:51:59 -04:00
Luke Campagnola 1a0b5921df remotegraphicsview fix for PyQt 4.10 2013-04-07 16:18:58 -04:00
Luke Campagnola 70ec358995 Fix: make HistogramLUTWidget obey default background color 2013-03-30 22:26:32 -04:00
Luke Campagnola dbc8fe423b merged with inp 2013-03-26 13:48:14 -04:00
Luke Campagnola 8828892e55 merged many changes from acq4 2013-03-26 13:46:26 -04:00
Luke Campagnola 7fce0ce5cb Allow GraphicsView.setCentralItem(None) 2013-03-26 13:35:29 -04:00
Luke Campagnola cefb4f9828 merged updates from acq4 2013-03-19 16:04:46 -04:00
Luke Campagnola 4839998574 merged with inp branch 2013-03-07 15:33:59 -05:00
Luke Campagnola 2a27687fb2 merged updates from acq4 2013-03-07 15:29:56 -05:00
Luke Campagnola db5c303fad TableWidget updates:
- Made numerically sortable
  - Added setEditable method
  - Added example
2013-03-06 06:27:24 -05:00
Luke Campagnola 916face815 Merged TableWidget updates from Laugher 2013-03-06 05:43:02 -05:00
Brianna Laugher e4314f883d Move setSortingEnabled to the widget init rather than after setting the data, otherwise weird sorting happens 2013-03-05 16:29:07 +11:00
Brianna Laugher cba720730d Some extra bits - add sizeHint, make not editable, make columns sortable 2013-03-05 14:02:55 +11:00
Brianna Laugher 5254d29b6a Pylint cleanups - remove commented out code, fix formatting etc 2013-03-05 13:58:42 +11:00
Luke Campagnola ccc81c6919 mp fixes 2013-02-13 11:43:22 -05:00
Luke Campagnola 6e5c5e402b merged many new features from ACQ4 2013-02-10 17:45:16 -05:00
Luke Campagnola 4c887c8f50 Merge new fixes and features from acq4 2013-02-10 14:10:30 -05:00
Luke Campagnola 413a8f930e Bugfixes:
- ViewBox ignore bounds on zoom box
- Fixed improper pixel size caching
- Fixed check for 'win' in sys.platform (matches 'darwin' as well)
2013-01-30 15:51:38 -05:00
Luke Campagnola 4dc9b83816 Fixes for Python3, PySide 2013-01-12 18:07:35 -05:00
Luke Campagnola 9a9fc15873 Bugfixes:
- GraphicsItem.pixelVectors copies cached results before returning
  - Multiprocess fixes for Windows:
      - mmap/shm uses anonymous maps rather than tempfiles
      - avoid use of getppid and setpgrp
      - work around hmac authentication bug (use os.urandom to generate key)
2013-01-12 14:31:49 -05:00
Luke Campagnola 513e904a59 Improved performance for remote plotting:
- reduced cost of transferring arrays between processes (pickle is too slow)
  - avoid unnecessary synchronous calls

Added RemoteSpeedTest example
2013-01-10 16:10:27 -05:00
Luke Campagnola 01b8968a0a Performance improvements:
- AxisItem shows 2 tick levels instead of 3
  - Lots of boundingRect and dataBounds caching
    (improves ViewBox auto-range performance, especially with multiple plots)
  - GraphicsScene avoids testing for hover intersections with non-hoverable items
    (much less slowdown when moving mouse over plots)
These are deep changes; need good testing before we release them.
2013-01-09 22:21:32 -05:00
Luke Campagnola b0e0781624 svg exporter updates 2012-12-25 22:20:31 -05:00
Luke Campagnola af59296231 Reorganized directory structure to be more standard
Started new SVG exporter
Merged updates from ACQ4
2012-12-25 00:43:31 -05:00