悬停事件在QGraphicsPixmapItem中不起作用

凝视

我的课程结构是:

名为FloatingButtonItem的类继承了QGraphicsPixmapItem

class FloatingButtonItem : public QGraphicsPixmapItem
{

(...)并重新实现这五个功能。

protected:

void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget);
void mousePressEvent(QGraphicsSceneMouseEvent *event);
void mouseReleaseEvent(QGraphicsSceneMouseEvent *event);
void hoverEnterEvent(QGraphicsSceneHoverEvent *event);
void hoverLeaveEvent(QGraphicsSceneHoverEvent *event);

它们每个都只更改BOOLEAN变量的值并打印一条消息。

构造函数中,我有:

FloatingButtonItem::FloatingButtonItem(MyGraphicsScene* scene,  QGraphicsItem* parent) :  QGraphicsPixmapItem(parent)

FloatingButton的绘制完美,但是没有接收到悬停事件

在您问它之前:是的,我在创作中添加了以下这一行:

  **setAcceptHoverEvents(true);**
  setFlag(ItemIsMovable, true);
  setFlag(ItemSendsGeometryChanges, true);
  setZValue(20.0);

该项目完美地出现在其余项目的前面。

创建它之后,我使用“ addItem”功能将其添加到场景中。

创作有什么问题吗?与育儿?

另一方面,我还有一个继承自QGraphicsPolygonItem的类,我称之为GenericItem,该类是这样创建的:

class GenericItem : public QObject {

Q_OBJECT

...

它确实适用于悬停事件。显然是一样的...添加Q_OBject并使它从QObject继承是行不通的。

编辑:我添加另一条评论:我检查了边界矩形。没关系。大小不为0。

编辑2:关于边界框:

我也重新实现了boundingRect函数:

QRectF boundingRect () const { return boundingRect_; }   

边界rect是在创建时使用如下选择的Pixmap计算得出的:

boundingRect_ = QRectF( -pix.width()/2, -pix.height()/2, pix.width() , pix.height());
setPos(-pix_.width()/2,-pix_.height()/2);

有任何想法吗?

黑暗骑士

您声明这是您的类的构造函数:-

FloatingButtonItem::FloatingButtonItem(MyGraphicsScene* scene,  QGraphicsItem* parent) 
      :  QGraphicsPixmapItem(parent,scene)

如果您查看QGraphicsPixmapItem的构造函数,则文档将显示以下内容:-

QGraphicsPixmapItem(QGraphicsItem * parent = 0)
QGraphicsPixmapItem(const QPixmap & pixmap, QGraphicsItem * parent = 0)

这两个构造函数都没有将QGraphicsScene作为第二个参数,这就是您要传递给基类的内容。

您应该创建您的像素图项目并调用:-

pScene->addItem(floatingButtonItem);

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

jQuery悬停事件不起作用

来自分类Dev

A:悬停在CSS中不起作用

来自分类Dev

A:悬停在CSS中不起作用

来自分类Dev

为什么悬停在委托事件处理程序中不起作用?

来自分类Dev

悬停事件的尾迹模式在tsParticles中不起作用(类似于particlejs)

来自分类Dev

输入文本框的jQuery悬停事件不起作用

来自分类Dev

鼠标悬停事件后addClass()不起作用

来自分类Dev

chrome指针事件在悬停时不起作用

来自分类Dev

悬停事件上的背景颜色更改不起作用

来自分类Dev

OnClick事件在jQuery中不起作用

来自分类Dev

MouseWheel事件在IE中不起作用?

来自分类Dev

在MySQL中创建事件不起作用

来自分类Dev

onTextChanged事件在Android中不起作用

来自分类Dev

Keydown事件在Javascript中不起作用

来自分类Dev

Keydown事件在ListView中不起作用

来自分类Dev

jQuery中的Click事件不起作用

来自分类Dev

Chrome中的OnClick事件不起作用

来自分类Dev

onClick 事件在 ReactJS 中不起作用

来自分类Dev

OnClick 事件在coverflow 中不起作用

来自分类Dev

$(this) 在定义的点击事件中不起作用

来自分类Dev

href悬停不起作用?

来自分类Dev

导航悬停不起作用

来自分类Dev

jQuery的悬停不起作用

来自分类Dev

下拉悬停不起作用

来自分类Dev

图片:悬停不起作用

来自分类Dev

CSS列表悬停在Google Chrome中不起作用

来自分类Dev

CSS悬停在IE8中不起作用

来自分类Dev

jQuery中的悬停功能不起作用

来自分类Dev

悬停效果在子菜单中不起作用