我正在使用 QgraphicsLineItem 进行绘图,这样在达到一定长度后,它应该给线条带来淡入淡出效果。因此,我使用的基本方法是将其对象附加到列表中,然后设置其不透明度,这将产生淡入淡出的效果。但我在这里面临的问题是它正在消失,但连接线的点却重叠了。
以下是代码片段:
# 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 设置为每个项目的不透明效果。
这在绘制线条时不起作用,你需要绘制一个 QPainterPath