Commit Graph

396 Commits

Author SHA1 Message Date
Luke Campagnola
b25e34f564 Features:
- Canvas: added per-item context menus
- Isocurve: 
     option to extend curves to array boundaries
     option to generate QPainterPath instead of vertex array
- Isosurface is a bajillion times faster
- ViewBox
     added clear() method
     added locate(item) method (shows where an item is for debugging)

Bugfixes:
- automated example testing working properly
- Exporter gets incorrect source rect when operating on PlotWidget
- Set correct DPI and size for SVG exporter
- GLMeshItem works properly with whole-mesh color specified as sequence
- bugfix in functions.transformCoordinates for rotated matrices
- reload library checks for modules that are imported multiple times
- GraphicsObject, UIGraphicsItem: added workaround for PyQt / itemChange bug
- ScatterPlotItem: disable cached render during export

Other:
- added documentation for several functions
- minor updates to setup.py
2012-12-22 16:51:25 -05:00
Luke Campagnola
ecca8855df - ScatterPlotItem disables render cache during export
- Fixes for SVG exporter
- functions.isosurface() is a bazillion times faster (API change: return value format has changed)
2012-12-22 15:16:38 -05:00
Luke Campagnola
3de5719011 Merged testing code from Kratz
Numerous fixes for python 3 compatibility
2012-12-05 00:25:45 -05:00
Megan Kratz
c8123fefaa added primitive test capability to run through all examples - works but needs to be refined to make it better
-- to run the tests simply run "python pyqtgraph/examples --test"
2012-11-29 16:50:42 -05:00
Megan Kratz
70fde35e3b merge from Luke 2012-11-27 14:56:02 -05:00
Megan Kratz
dde6a2ac4c work on DateAxisItem 2012-11-27 14:54:49 -05:00
Luke Campagnola
aca9c8310f Major overhaul for GLMeshItem, MeshData classes
[ Note: These APIs have changed significantly. ]
  - MeshData and GLMeshItem now operate on numpy arrays instead of lists.
  - MeshData can handle per-vertex and per-triangle color information
Added GLSurfacePlotItem class based on new GLMeshItem
GLGraphicsItem now has per-item support for customizing GL state (setGLOptions method)
Added several new shader programs
Added new examples:
   GLIsosurface
   GLSurfacePlot
   GLshaders
2012-11-23 17:34:22 -05:00
Luke Campagnola
9b41c90034 New features for LegendItem:
- Can be anchored to parent item at any location
  - Support for filled plot styles
  - Automatically resizes to fit contents
  - PlotItem can auto-generate legend
2012-11-23 16:05:14 -05:00
Luke Campagnola
e5f383fbb5 Bugfixes and updates to functions.py:
- generalized makeARGB API: can now process arrays of arbitrary shape.
  - affineSlice automatically converts vector arguments to array
  - new function applyLookupTable taken from makeARGB
  - isosurface function returns array
Updated VideoSpeedTest example to follow new makeARGB API

LayoutWidget: row argument now accepts 'next' as value
ParameterTree bugfix: avoid infinite recursion when accessing non-existent attributes
ViewBox: avoid exit error caused when cleanup callback is invoked while python is shutting down
2012-11-23 16:01:25 -05:00
Megan Kratz
2ca4cddff7 merge from luke 2012-11-10 11:27:33 -05:00
Megan Kratz
af5a5d3eb3 Start of work on DateAxis 2012-11-10 11:22:56 -05:00
Luke Campagnola
eab1d75592 ROI updates:
- ROI.movePoint now expects parent coordinates by default
   - Added ROI.getHandles()
   - Renamed MultiLineROI to MultiRectROI
   - Reorganized MultiRectROI, added addSegment and removeSegment methods (thanks Martin!)
2012-10-31 02:01:55 -04:00
Luke Campagnola
b09182d19a GLScatterPlotItem: use shader programs to allow specifying spot size by array
Reorganized shader programs
Infrastructure updates for OpenGL system
2012-10-26 21:47:45 -04:00
Luke Campagnola
450626a3bb Fixes for PySide compatibility 2012-10-26 08:55:53 -04:00
Luke Campagnola
bbba3f1f78 Updated GLScatterPlotItem for performance. 2012-10-26 00:09:47 -04:00
Luke Campagnola
f04049f098 Added histogram example 2012-10-22 14:10:16 -04:00
Luke Campagnola
65ed889a77 Added very basic LegendItem. Functional, but still missing some basic features.
Added GLImageItem and example.
2012-10-18 23:18:20 -04:00
Luke Campagnola
c4019b900d Overhaul of ScatterPlotItem to improve performance. (API should be mostly unchanged)
Much more efficient at rapid updates.
2012-10-18 22:48:36 -04:00
Luke Campagnola
5081c97ac5 Better support for frozen environments:
- built in Christian Gavin's os.listdir replacement
  - added os.isdir replacement
Fixed ViewBox causing errors at shutdown
2012-10-11 00:57:24 -04:00
Luke Campagnola
1d05656a73 - Fixed issue with numpy.concatenate wrapper
- ConsoleWidget now correctly catches its own exceptions
- Fixed ViewBox auto-scaling bug
- Fixed functions.siEval not parsing units correctly
- Fixed bug caused when opengl GL_VERSION_STR is None
2012-10-09 20:40:48 -04:00
Luke Campagnola
27c90c5dd5 Many minor updates:
- added ability for ScatterPlotItem to use arbitrary symbol shapes
- added scatter plot speed test for evaluating new methods
- added butterworth notch filter to flowchart library
- fixed bugs with ViewBox trying to close itself after python has started cleaning up
- fixed python 2.6 compatibility bug in PlotCurveItem
- fixed support for list-of-dicts and dict-of-lists input for PlotDataItem
- check to ensure Qt version is >= 4.7
- workaround for numpy segmentation fault
- several other minor updates and documentation changes
2012-10-02 21:23:59 -04:00
Luke Campagnola
ca9d0ed147 Added preliminary support for python 2.6
Fixed setup.py to automatically search for all sub-packages
2012-09-13 10:12:59 -04:00
Luke Campagnola
32311351f1 Now detects and switches between PyQt / PySide automatically; no need to distribute different versions of the library anymore. 2012-09-09 19:07:36 -04:00
Luke Campagnola
0402d08604 Minor updates and bug fixes:
- fixed handling of foreground colors in AxisItem
  - fixed rare crash caused in AxisItem 
  - fixed improper propagation of key events from SpinBox
  - many others
2012-08-31 17:18:06 -04:00
Luke Campagnola
237625a48d Parametertree updates:
- Fixed up parametertree.saveState() and restoreState() methods
  - Updated parametertree documentation
2012-08-17 16:17:44 -04:00
Luke Campagnola
e62af590e7 Added custom graphicsitem example 2012-08-17 16:17:09 -04:00
Luke Campagnola
45312120b1 Added TreeWidgetItem class: subclass of QTreeWidgetItem that manages its own column widgets 2012-08-17 16:11:30 -04:00
Luke Campagnola
0ee255acfb Fixed up parametertree.saveState() and restoreState() methods 2012-08-17 15:32:11 -04:00
Luke Campagnola
0f97ac77e2 merge from dev 2012-08-14 10:22:05 -04:00
Luke Campagnola
e4e3a636f3 Added console example to menu 2012-08-03 00:08:05 -04:00
Luke Campagnola
f81e94061f added dockarea example 2012-07-10 16:30:03 -04:00
Luke Campagnola
4384944952 Cleaned up parametertree example 2012-07-09 17:14:41 -04:00
Luke Campagnola
662b319d7b - PlotItem can now be constructed with customized ViewBox and AxisItems
- Text spacing fix for AxisItem
2012-07-09 08:38:30 -04:00
Luke Campagnola
ad7b5f0aad - Default foreground / background colors can now be set using pyqtgraph.setConfigOption()
- Added pyqtgraph.systemInfo() for bug reporting
- GraphicsLayout does a better job of avoiding occupied cells when using automatic placement
- Fixed sizing issues with LabelItem
- Updated GraphicsLayout example
2012-06-29 14:39:27 -04:00
Luke Campagnola
96202aed3e Basic functionality in RemoteGraphicsView is working. 2012-06-22 22:10:37 -04:00
Luke Campagnola
d1fdbadd19 Multiprocessing updates / fixes:
- ForkedProcess is much more careful with inherited state -- closes file handles, removes atexit and excepthook callbacks
   - Remote processes copy sys.path from parent
   - Parallelizer has ProgressDialog support
   - Many docstring updates
   - Added some test code for remote GraphicsView rendering
2012-06-21 22:00:04 -04:00
Luke Campagnola
cc93c7ba43 Minor edits and fixes 2012-06-21 21:52:34 -04:00
Luke Campagnola
e6a017a89d linked ConsoleWidget in to example menu 2012-06-18 20:01:32 -04:00
Luke Campagnola
72006fe05b Added custom multiprocessing module:
- allows starting new processes and controlling them remotely from the parent process
  - remote processes can run their own GUI, Qt signals can be connected between processes
    (in general this is not possible with the built-in multiprocessing module due to
    the use of fork() ).
  - Control works by a system of proxy-objects such that controlling a remote process
    looks almost exactly like working with local objects.
  - Uses sockets to communicate between processes (so in theory could be made to 
    work over a network), but also includes a mode that uses fork() to allow fast
    parallelization.
  - Wicked-easy inline parallelization by adding only one line of code to break up work between
    processes (requires fork; sorry windows users)
2012-06-18 15:20:35 -04:00
Luke Campagnola
c7a78642fd Added interactive console widget:
- GUI interactive python prompt, useful in a variety of situations where
    python -i or ipython don't work very well. 
  - Command history (requires a little help finding storage for this)
  - Exception catching, allowing the user to inspect local variables 
    at any level within a stack trace (currently, this is done _without_
    blocking the application)
2012-06-18 15:18:38 -04:00
Luke Campagnola
6932c34126 - Added workaround for Qt bug: https://bugreports.qt-project.org/browse/QTBUG-18616. (GraphicsItem.setParent needs to check for scene change first)
This _could_ cause other problems, but they will certainly be fewer than the existing problems.

- Fixed bugs with ViewBox linking to views which are subsequently deleted
2012-06-18 14:00:19 -04:00
Luke Campagnola
cc94e15d1e Minor edits and bugfixes
- fixed AxisItem sometimes drawing the same tick twice (sometimes with different text)
   - fixed handling of record arrays in setting ScatterPlotItem point data
2012-06-18 13:50:44 -04:00
Luke Campagnola
a4963f93b7 added flowchart node for removing periodic noise from waveform
metaarray updates:
  - better handling of HDF5 files
  - fixed some isinstance problems that appear during reloads
2012-06-18 13:45:47 -04:00
Luke Campagnola
c79e794e53 Added ui file for ScatterPlotSpeedTest 2012-05-31 16:06:13 -04:00
Luke Campagnola
5644a17045 Added new examples 2012-05-31 16:05:19 -04:00
Luke Campagnola
ce5fef9675 Added new ROI example 2012-05-30 01:02:03 -04:00
Luke Campagnola
55e58ac6ad updated arrow example 2012-05-29 23:44:14 -04:00
Luke Campagnola
f258c3d87c minor bugfixes / features:
- optional context menu for ImageItem
 - inverted y-axis in Canvas (+y now points upward)
 - extra __init__ arguments for Dock
 - Transform can be constructed from Matrix4x4
 - many others
2012-05-29 23:18:34 -04:00
Luke Campagnola
0f1f6c62e4 Enforced LF file endings
removed stray print statement
2012-05-23 20:29:16 -04:00
Luke Campagnola
8a9557cff1 added GradientWidget example 2012-05-11 20:10:48 -04:00
Luke Campagnola
fc9b3dee4d Started Python3 compatibility changes 2012-05-11 18:05:41 -04:00
Luke Campagnola
13b201bebb ScatterPlotItem overhaul:
- performance improvements
  - removed 'identical' argument; this is now handled automatically
  - some minor API changes to SpotItem
2012-05-10 23:37:07 -04:00
Luke Campagnola
7c1c9f8d04 added auto-ranging example 2012-05-08 17:55:25 -04:00
Luke Campagnola
9b5c8d0ada ScatterPlotItem minor performance fixes
SpinBox bugfix - improper handling of arguments to setOpts in integer mode
2012-04-30 18:20:27 -04:00
Luke Campagnola
f278abd55d Added 3D scatter plot item 2012-04-28 15:48:49 -04:00
Luke Campagnola
044b26e11c OpenGL:
improved mouse/keyboard interaction
  bugfix in GLViewWidget.cameraPosition
2012-04-28 15:12:46 -04:00
Luke Campagnola
41bc951a1c minor plotting example update 2012-04-22 13:22:43 -04:00
Luke Campagnola
f8758dba39 PlotItem (finally) gets log scaling
Also cleaned up some context menu items
2012-04-21 15:57:47 -04:00
Luke Campagnola
4954b19931 example update 2012-04-18 00:09:37 -04:00
Luke Campagnola
7287771577 docstring update 2012-04-12 12:44:31 -04:00
Luke Campagnola
41ada931d4 Fixed up JoystickButton example 2012-04-05 23:04:26 -04:00
Luke Campagnola
a5f3d5ac9c added documentation to flowchart example 2012-04-04 22:20:21 -04:00
Luke Campagnola
d9c558105c Added metaarray to support flowchart
Prettied up flowchart example
2012-04-04 21:59:37 -04:00
Luke Campagnola
20c40a70d5 Added in flowchart's filter functions 2012-04-04 21:03:31 -04:00
Luke Campagnola
a330d84943 added check for correct python version
fixes for flowchart
 - added missing FeedbackButton.py
 - corrected imports
2012-04-04 14:45:12 -04:00
Luke Campagnola
bdb6ff88a2 Updates to IsocurveItem, added isocurve example
minor updates for other examples
2012-04-04 12:22:43 -04:00
Luke Campagnola
78d4bc0838 Performance enhancements
- HistogramLUTItem avoids using lookup table if possible
 - GradientEditorItem has a method to ask whether the gradient is trivial (can be applied without the use of a lookup table)
 - ROI, LinearRegionItem, InfiniteLine no longer redraw for every mouse movement
2012-04-04 09:29:35 -04:00
Luke Campagnola
33b09dfa23 Added crosshair example 2012-04-03 01:11:39 -04:00
Luke Campagnola
bdef8dc4c7 fixed example menu on windows 2012-03-30 15:53:10 -04:00
Luke Campagnola
96d1267223 Added 3D examples to menu 2012-03-24 12:32:53 -04:00
Luke Campagnola
7e926ba136 Bugfix for plot linking 2012-03-23 04:04:04 -04:00
Luke Campagnola
2a2f19b2d5 bugfixes 2012-03-23 03:21:04 -04:00
Luke Campagnola
3b2ef16071 bugfix for view linking, example update 2012-03-23 02:42:32 -04:00
Luke Campagnola
7c94b5a702 Bugfixes and example for view linking 2012-03-20 23:38:04 -04:00
Luke Campagnola
59ed9397a3 Fixes for PlotCurveItem, PlotDataItem, ScatterPlotItem.
Made APIs more complete and consistent.
2012-03-18 14:57:36 -04:00
Luke Campagnola
66dd6f974e Added TextItem and example 2012-03-17 23:10:00 -04:00
Luke Campagnola
fcf2c53c46 Example updates 2012-03-17 11:47:20 -04:00
Luke Campagnola
fe4e177d8e AxisItem fixes
documentation update
removed documentation builds from repo.
2012-03-12 12:23:25 -04:00
Luke Campagnola
920fd9333e OpenGL scenegraph updates
- volumetric rendering
 - isosurfaces, mesh rendering
 - basic transformation and parent/child functionality
2012-03-09 12:38:15 -05:00
Luke Campagnola
8dbce440e4 example for GL scenegraph 2012-03-06 01:22:41 -05:00
Luke Campagnola
45fb4f6d40 import corrections 2012-03-01 22:58:02 -05:00
Luke Campagnola
dc597ac584 fixes for pyside compatibility 2012-03-01 22:53:52 -05:00
Luke Campagnola
d4e8e2b883 Imported major changes from acq4 project. 2012-03-01 21:55:32 -05:00
Luke Campagnola
4d846e2aad Updates merged from acq4:
- disabled opengl (performance issues in Qt 4.7)
 - numerous caching changes (disabled deviceCoordinateCache due to performance issues)
 - speed up loading large images in ImageView
 - bugfixes from Ingo Breßler
 - Transform rotation bugfix
 - Added debug module
 - Major performance enhancements for scatterplot, fixed point clicking issues
     ** API change for scatterplot click signals
 - Drawing on ImageItem is working well now
 - PlotItem downsampling no longer uses scipy.signal.resample (this was creating artifacts)
 - Fixed ViewBox behavior when aspect-locked
2011-06-14 19:47:52 -04:00
Luke Campagnola
6783f4fa26 sync changes from acq4:
- numerous fixes in close() functions
 - added Transform class
 - ROI widgets now operate in degrees instead of radians for easier Qt compatibility
2011-04-25 08:51:18 -04:00
Luke Campagnola
a5668a1a26 Merged from Ingo B. with changes
Implements single axis scaling by mouse wheel over tick marks
2011-04-05 12:53:05 -04:00
Luke Campagnola
7629bca34d Updates merged in from ACQ4:
- converted most old-style signals into new-style for PySide compatibility (beware: API changes)
  - removed ObjectWorkaround, now just using QGraphicsWidget
  - performance enhancements, particularly in ROI.getArrayRegion
  - numerous bugfixes
2011-04-05 10:35:50 -04:00
Ingo B.
3b820c2972 sync with lp:~luke-campagnola/pyqtgraph/main 2011-02-16 18:11:23 +01:00
Luke Campagnola
397a1c8a66 bugfixes 2011-02-09 22:44:09 -05:00
Luke Campagnola
4aeaf61976 Merge changes from lp:~ibressler/pyqtgraph/devel 2011-02-07 19:52:48 -05:00
Luke Campagnola
c55392965f Merge from ACQ4:
- Lots of bug fixes
 - API change in PlotItem.plot(...)
 - Started replacing QObjectWorkaround with QWidget
 - Made plotCurveItems clickable
 - Added curve-following arrows
2011-02-07 19:40:38 -05:00
Ingo B.
bf1e59ca22 - changes to get some examples working on my side
(test_PlotWidget.py, test_MultiPlotWidget.py)
  (ubuntu 10.10, python 2.6.6, qt 4.7.0, pyqt 4.7.4, numpy 1.3.0)
2011-02-03 11:03:13 +01:00
Luke Campagnola
661e4411e2 Numerous fixes
added scatter plots
2010-11-21 22:50:04 -05:00
Luke Campagnola
39cf791fba minor updates / fixes 2010-07-25 00:33:26 -04:00
Luke Campagnola
2ca08c69ce merged many changes in from acq4:
- added vertical lines / regions for plots
 - added gradient editor widget
 - many bugfixes
 - cleaned up imageview a bit
2010-07-24 14:29:09 -04:00
Luke Campagnola
11897061d1 Removed some debugging code, moved examples 2010-03-22 02:21:56 -04:00