我的QGraphicsView的背景是通过重载.drawBackground(...)
并调用painter.drawImage(...)
来设置的。我继续将前景对象添加到关联的QGraphicsScene。这些主要是QGraphicsRectItem类型。我希望这些前景矩形中的每一个都将图像滤镜应用到它们所覆盖的背景的子图像。
提前致谢!
答案 0 :(得分:0)
如果您的背景是静态的,则可以在(自定义)项类的paintEvents中使用此静态图像。但据我所知,你不能使用Qt的项目效果,但需要在paintEvents中自己实现过滤器。请记住从滤镜的图像中裁剪出正确的区域。
在某些情况下,您甚至不需要背景图像。例如,如果要反转项目所覆盖的背景图像,只需填充项目的paintEvent中的整个区域,但在适当地设置图形之前设置画家的合成模式。 (有关可用模式,请参阅QPainter::CompositionMode。)
如果背景不是静态的,则不能重复使用drawBackground方法的代码或在图像上绘制背景,然后使用此图像为每个项目中的效果绘制实际背景+。
要获得更具体的答案,您应该提供有关项目背景和过滤器的更多信息。