Python 如何在PyQtGraph中将一个项目始终放置在其他项目之上?

Python 如何在PyQtGraph中将一个项目始终放置在其他项目之上?,python,pyqtgraph,Python,Pyqtgraph,我想知道是否可以将一个项目置于其他项目之上,即使该项目是在其他项目之前添加的 import pyqtgraph as pg from pyqtgraph import QtCore, QtGui class CandlestickItem(pg.GraphicsObject): def __init__(self, data): pg.GraphicsObject.__init__(self) self.data = data sel

我想知道是否可以将一个项目置于其他项目之上,即使该项目是在其他项目之前添加的

import pyqtgraph as pg
from pyqtgraph import QtCore, QtGui

class CandlestickItem(pg.GraphicsObject):
    def __init__(self, data):
        pg.GraphicsObject.__init__(self)
        self.data = data  
        self.generatePicture()
    
    def generatePicture(self):
        self.picture = QtGui.QPicture()
        p = QtGui.QPainter(self.picture)
        p.setPen(pg.mkPen('w'))
        w = (self.data[1][0] - self.data[0][0]) / 3.
        for (t, open, close, min, max) in self.data:
            p.drawLine(QtCore.QPointF(t, min), QtCore.QPointF(t, max))
            if open > close:
                p.setBrush(pg.mkBrush('r'))
            else:
                p.setBrush(pg.mkBrush('g'))
            p.drawRect(QtCore.QRectF(t-w, open, w*2, close-open))
        p.end()
    
    def paint(self, p, *args):
        p.drawPicture(0, 0, self.picture)
    
    def boundingRect(self):
        return QtCore.QRectF(self.picture.boundingRect())

data = [  ## fields are (time, open, close, min, max).
    (1., 10, 13, 5, 15),
    (2., 13, 17, 9, 20),
    (3., 17, 14, 11, 23),
    (4., 14, 15, 5, 19),
    (5., 15, 9, 8, 22),
    (6., 9, 15, 8, 16),
]


plt = pg.plot()


sctItem = pg.ScatterPlotItem(symbol='s', pen=pg.mkPen(None), size=13, brush=(14, 40, 57, 255))
sctItem.setData( [1,2,3],[12,15,16] )
plt.addItem(sctItem)

candleItem = CandlestickItem(data)
plt.addItem(candleItem)



plt.setWindowTitle('pyqtgraph example: customGraphicsItem')

if __name__ == '__main__':
    import sys
    if (sys.flags.interactive != 1) or not hasattr(QtCore, 'PYQT_VERSION'):
        QtGui.QApplication.instance().exec_()
在上面的代码中,sctItem是在candleItem之前添加的,因此无法看到。是否有一种方法可以将一个项目保持在其他项目之上,无论之后是否添加了新项目?

该值决定了同级(邻居)的堆叠顺序,因此在这种情况下,如果希望sctItem位于其其他同级之上,则只需将其设置为1,因为默认情况下它是0

sctItem.setZValue(1)

这就是我需要的!非常感谢。