分段线的淡入淡出效果(QGraphicsLineItem)

问题描述 投票:0回答:1

我正在使用 QgraphicsLineItem 进行绘图,这样在达到一定长度后,它应该给线条带来淡入淡出效果。因此,我使用的基本方法是将其对象附加到列表中,然后设置其不透明度,这将产生淡入淡出的效果。但我在这里面临的问题是它正在消失,但连接线的点却重叠了。

Segmented Line Image

以下是代码片段:

   # Inherited Plotwidget class 
 
   def drawLine1(self,x,y,z):
            # Here x,y are coordinates and z if force for finger 1
            item = pg.QtWidgets.QGraphicsLineItem()
            item.setPen(pg.mkPen(width= z+ ModeOne.pen_wid_1, color = ModeOne.color_1))
            # For drawing one point

               if x[-2] == x [-1]:
                    x[-2] = x[-1] - 1
                    y[-2] = y[-1] - 1

               item.setLine(x[-2],y[-2],x[-1],y[-1])

  
        self.addItem(item)
        self.rectdata_fir.append(item)
    self.disappear_item(self.rectdata_fir)

    def disappear_item(self, item_list):
        if len(item_list)>50:
            item_list[10].setOpacity(0.10)
            item_list[9].setOpacity(0.09)
            item_list[8].setOpacity(0.08)
            item_list[7].setOpacity(0.07)
            item_list[6].setOpacity(0.07)
            item_list[5].setOpacity(0.05)
            item_list[4].setOpacity(0.04)
            item_list[3].setOpacity(0.03)
            item_list[2].setOpacity(0.02)
            item_list[1].setOpacity(0.01)
            self.removeItem(item_list.pop(0))
        

因此,最初尝试将这些项目分组到 QGraphicsItemGroup 中,然后将其不透明度效果设置为 0.1。或者,我尝试将 GraphicsEffect 设置为每个项目的不透明效果。

python-3.x qt pyqt5 pyqtgraph
1个回答
0
投票

这在绘制线条时不起作用,你需要绘制一个 QPainterPath

© www.soinside.com 2019 - 2024. All rights reserved.