Qt 如何在QGraphicsPixmapItem上添加视觉效果?
我正在使用Qt5.5.0 我想知道一种在Qt 如何在QGraphicsPixmapItem上添加视觉效果?,qt,qt5,qgraphicspixmapitem,Qt,Qt5,Qgraphicspixmapitem,我正在使用Qt5.5.0 我想知道一种在QGraphicsPixmapItem-s上添加(和删除)简单效果的好方法 更具体地说,我有多个QGraphicsPixmapItem-s在场景中移动。当它们发生碰撞时,我想让一个项目变白一段时间,然后回到原始的pixmap项目 我在QGraphicsPixmapItem类的文档中找到的唯一可能是我需要的virtualvoidpaint(QPainter*painter,const QStyleOptionGraphicsItem*选项,QWidget*小
QGraphicsPixmapItem
-s上添加(和删除)简单效果的好方法
更具体地说,我有多个QGraphicsPixmapItem
-s在场景中移动。当它们发生碰撞时,我想让一个项目变白一段时间,然后回到原始的pixmap项目
我在
QGraphicsPixmapItem
类的文档中找到的唯一可能是我需要的virtualvoidpaint(QPainter*painter,const QStyleOptionGraphicsItem*选项,QWidget*小部件)
成员。但是我如何使用它来实现我的目标呢?不要使用paint()
方法来完成这类工作。退房我自己还没有使用过它,但它应该可以提供您所需要的任何东西。从我所看到的QGraphicsItemAnimation
用于设置平移、旋转、缩放和类似效果的动画。我要找的是改变我的QGraphicsPixmapItem
中实际不透明像素的颜色。谷歌快速搜索给了我一两个例子,说明人们通过从中派生出自己的对象,将其用于其他属性。另一种可能是使用中使用的。因此,您所要问的是当发生某些事情时如何更改pixmap?您已经知道如何做到这一点,因为您首先将pixmap设置为某个值。那么,问题是什么呢?如果有任何变化,视觉上,有一个QImage
备份存储,无论如何都必须部分重新计算,因此,相对而言,更改这些pixmap是一个小问题,实际上是最快的方法。可以计算图像/pixmap,而不是直接存储。您可以使用一种方法来计算修改后的pixmap并将其存储在QPixmapCache
中,以便快速重用。不要对此类内容使用paint()
方法。退房我自己还没有使用过它,但它应该可以提供您所需要的任何东西。从我所看到的QGraphicsItemAnimation
用于设置平移、旋转、缩放和类似效果的动画。我要找的是改变我的QGraphicsPixmapItem
中实际不透明像素的颜色。谷歌快速搜索给了我一两个例子,说明人们通过从中派生出自己的对象,将其用于其他属性。另一种可能是使用中使用的。因此,您所要问的是当发生某些事情时如何更改pixmap?您已经知道如何做到这一点,因为您首先将pixmap设置为某个值。那么,问题是什么呢?如果有任何变化,视觉上,有一个QImage
备份存储,无论如何都必须部分重新计算,因此,相对而言,更改这些pixmap是一个小问题,实际上是最快的方法。可以计算图像/pixmap,而不是直接存储。您可以使用一种方法来计算修改后的pixmap并将其存储在QPixmapCache
中,以便快速重用。