merged with inp

This commit is contained in:
Luke Campagnola 2013-03-26 13:48:14 -04:00
commit dbc8fe423b
5 changed files with 54 additions and 8 deletions

37
examples/PanningPlot.py Normal file
View File

@ -0,0 +1,37 @@
# -*- coding: utf-8 -*-
"""
Shows use of PlotWidget to display panning data
"""
import initExample ## Add path to library (just for examples; you do not need this)
import pyqtgraph as pg
from pyqtgraph.Qt import QtCore, QtGui
import numpy as np
win = pg.GraphicsWindow()
win.setWindowTitle('pyqtgraph example: PanningPlot')
plt = win.addPlot()
#plt.setAutoVisibleOnly(y=True)
curve = plt.plot()
data = []
count = 0
def update():
global data, curve, count
data.append(np.random.normal(size=10) + np.sin(count * 0.1) * 5)
if len(data) > 100:
data.pop(0)
curve.setData(np.hstack(data))
count += 1
timer = QtCore.QTimer()
timer.timeout.connect(update)
timer.start(50)
## Start Qt event loop unless running in interactive mode or using pyside.
if __name__ == '__main__':
import sys
if (sys.flags.interactive != 1) or not hasattr(QtCore, 'PYQT_VERSION'):
QtGui.QApplication.instance().exec_()

View File

@ -380,7 +380,7 @@ class AxisItem(GraphicsWidget):
This method is called whenever the axis needs to be redrawn and is a
good method to override in subclasses that require control over tick locations.
The return value must be a list of three tuples::
The return value must be a list of tuples, one for each set of ticks::
[
(major tick spacing, offset),

View File

@ -950,7 +950,8 @@ class ViewBox(GraphicsWidget):
dif = dif * -1
## Ignore axes if mouse is disabled
mask = np.array(self.state['mouseEnabled'], dtype=np.float)
mouseEnabled = np.array(self.state['mouseEnabled'], dtype=np.float)
mask = mouseEnabled.copy()
if axis is not None:
mask[1-axis] = 0.0
@ -990,8 +991,8 @@ class ViewBox(GraphicsWidget):
tr = self.childGroup.transform()
tr = fn.invertQTransform(tr)
x = s[0] if mask[0] == 1 else None
y = s[1] if mask[1] == 1 else None
x = s[0] if mouseEnabled[0] == 1 else None
y = s[1] if mouseEnabled[1] == 1 else None
center = Point(tr.map(ev.buttonDownPos(QtCore.Qt.RightButton)))
self.scaleBy(x=x, y=y, center=center)
@ -1321,6 +1322,8 @@ class ViewBox(GraphicsWidget):
k.destroyed.disconnect()
except RuntimeError: ## signal is already disconnected.
pass
except TypeError: ## view has already been deleted (?)
pass
def locate(self, item, timeout=3.0, children=False):
"""

View File

@ -79,7 +79,11 @@ class Process(RemoteEventHandler):
sysPath = sys.path if copySysPath else None
bootstrap = os.path.abspath(os.path.join(os.path.dirname(__file__), 'bootstrap.py'))
self.debugMsg('Starting child process (%s %s)' % (executable, bootstrap))
self.proc = subprocess.Popen((executable, bootstrap), stdin=subprocess.PIPE)
## note: we need all three streams to have their own PIPE due to this bug:
## http://bugs.python.org/issue3905
self.proc = subprocess.Popen((executable, bootstrap), stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
targetStr = pickle.dumps(target) ## double-pickle target so that child has a chance to
## set its sys.path properly before unpickling the target
pid = os.getpid() # we must send pid to child because windows does not have getppid

View File

@ -181,8 +181,9 @@ class GraphicsView(QtGui.QGraphicsView):
if self.centralWidget is not None:
self.scene().removeItem(self.centralWidget)
self.centralWidget = item
self.sceneObj.addItem(item)
self.resizeEvent(None)
if item is not None:
self.sceneObj.addItem(item)
self.resizeEvent(None)
def addItem(self, *args):
return self.scene().addItem(*args)
@ -272,7 +273,8 @@ class GraphicsView(QtGui.QGraphicsView):
scaleChanged = True
self.range = newRect
#print "New Range:", self.range
self.centralWidget.setGeometry(self.range)
if self.centralWidget is not None:
self.centralWidget.setGeometry(self.range)
self.updateMatrix(propagate)
if scaleChanged:
self.sigScaleChanged.emit(self)