Merge remote-tracking branch 'termim/master' into termim-fixes
ArrowItem: setStyle now combines new options with previously-set options. AxisItem: fix minor exceptions
This commit is contained in:
commit
96296749be
@ -2,7 +2,7 @@
|
||||
"""
|
||||
Display an animated arrowhead following a curve.
|
||||
This example uses the CurveArrow class, which is a combination
|
||||
of ArrowItem and CurvePoint.
|
||||
of ArrowItem and CurvePoint.
|
||||
|
||||
To place a static arrow anywhere in a scene, use ArrowItem.
|
||||
To attach other types of item to a curve, use CurvePoint.
|
||||
@ -45,6 +45,7 @@ p.setRange(QtCore.QRectF(-20, -10, 60, 20))
|
||||
## Animated arrow following curve
|
||||
c = p2.plot(x=np.sin(np.linspace(0, 2*np.pi, 1000)), y=np.cos(np.linspace(0, 6*np.pi, 1000)))
|
||||
a = pg.CurveArrow(c)
|
||||
a.setStyle(headLen=40)
|
||||
p2.addItem(a)
|
||||
anim = a.makeAnimation(loop=-1)
|
||||
anim.start()
|
||||
|
@ -1,5 +1,6 @@
|
||||
import initExample ## Add path to library (just for examples; you do not need this)
|
||||
|
||||
from os.path import *
|
||||
from pyqtgraph.Qt import QtGui, QtCore
|
||||
import pyqtgraph as pg
|
||||
import numpy as np
|
||||
@ -7,7 +8,7 @@ plt = pg.plot(np.random.normal(size=100), title="Simplest possible plotting exam
|
||||
plt.getAxis('bottom').setTicks([[(x*20, str(x*20)) for x in range(6)]])
|
||||
## Start Qt event loop unless running in interactive mode or using pyside.
|
||||
ex = pg.exporters.SVGExporter.SVGExporter(plt.plotItem.scene())
|
||||
ex.export('/home/luke/tmp/test.svg')
|
||||
ex.export(join(dirname(__file__), 'test.svg'))
|
||||
|
||||
if __name__ == '__main__':
|
||||
import sys
|
||||
|
@ -70,13 +70,16 @@ class ArrowItem(QtGui.QGraphicsPathItem):
|
||||
brush The brush used to fill the arrow.
|
||||
================= =================================================
|
||||
"""
|
||||
self.opts = opts
|
||||
try:
|
||||
self.opts.update(opts)
|
||||
except AttributeError:
|
||||
self.opts = opts
|
||||
|
||||
opt = dict([(k,self.opts[k]) for k in ['headLen', 'tipAngle', 'baseAngle', 'tailLen', 'tailWidth']])
|
||||
self.path = fn.makeArrowPath(**opt)
|
||||
self.setPath(self.path)
|
||||
|
||||
if opts['pxMode']:
|
||||
if self.opts['pxMode']:
|
||||
self.setFlags(self.flags() | self.ItemIgnoresTransformations)
|
||||
else:
|
||||
self.setFlags(self.flags() & ~self.ItemIgnoresTransformations)
|
||||
@ -121,4 +124,4 @@ class ArrowItem(QtGui.QGraphicsPathItem):
|
||||
return pad
|
||||
|
||||
|
||||
|
||||
|
||||
|
@ -688,7 +688,7 @@ class AxisItem(GraphicsWidget):
|
||||
## determine mapping between tick values and local coordinates
|
||||
dif = self.range[1] - self.range[0]
|
||||
if dif == 0:
|
||||
xscale = 1
|
||||
xScale = 1
|
||||
offset = 0
|
||||
else:
|
||||
if axis == 0:
|
||||
@ -806,10 +806,10 @@ class AxisItem(GraphicsWidget):
|
||||
## measure all text, make sure there's enough room
|
||||
if axis == 0:
|
||||
textSize = np.sum([r.height() for r in textRects])
|
||||
textSize2 = np.max([r.width() for r in textRects])
|
||||
textSize2 = np.max([r.width() for r in textRects]) if textRects else 0
|
||||
else:
|
||||
textSize = np.sum([r.width() for r in textRects])
|
||||
textSize2 = np.max([r.height() for r in textRects])
|
||||
textSize2 = np.max([r.height() for r in textRects]) if textRects else 0
|
||||
|
||||
## If the strings are too crowded, stop drawing text now.
|
||||
## We use three different crowding limits based on the number
|
||||
|
@ -112,6 +112,6 @@ class CurveArrow(CurvePoint):
|
||||
self.arrow = ArrowItem.ArrowItem(**opts)
|
||||
self.arrow.setParentItem(self)
|
||||
|
||||
def setStyle(**opts):
|
||||
def setStyle(self, **opts):
|
||||
return self.arrow.setStyle(**opts)
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user