PyQt5Chart系列不会在只有启用OpenGL时才更新画笔时重新绘制



我为自定义图例Widget定义了以下事件过滤器。基本上,当鼠标悬停在上面时,我希望线条变粗。

当OpenGL对所有系列都被禁用时,此代码段就可以工作。但是,当OpenGL处于启用状态时,它不会更改笔。

# self.series is a list
def eventFilter(self, obj, event):
if event.type() == QEvent.Enter:
pen = QPen()
pen.setColor(self.series[0].pen().color())
pen.setWidth(6)
pen.setCosmetic(False)
list(map(lambda series: series.setPen(pen), self.series))
return True
elif event.type() == QEvent.Leave:
pen = QPen()
pen.setColor(self.series[0].pen().color())
pen.setWidth(3)
pen.setCosmetic(False)
list(map(lambda series: series.setPen(pen), self.series))
return True
return False

这是Qt中的一个错误吗?

我发现的解决方案是在我更换笔后切换每个系列的可见性:

for series in self.series:
series.setPen(pen)
series.setVisible(False)
series.setVisible(True))

编辑:

感谢@eylanesc提供了类似且更优雅的解决方案:

# Turns out this doesn't actually work for some reason
series.chart().update()

相关内容

  • 没有找到相关文章

最新更新