如何将继承QGraphicsEllipseItem添加到QGraphicsScene

时间:2014-09-01 12:00:50

标签: c++ qt

我在QGraphicsScene中添加了多个省略号:

QGraphicsEllipseItem *ellipse;
ellipse = sceneCenter->addEllipse(xCor-4,yCor-4,imgW+7,imgH+7,blackpen,redBrush);

现在我想添加hoverEnterEvent,所以每当我将鼠标拖到这些椭圆上时它会做一些事情,所以我创建了这个类:

#include <QGraphicsEllipseItem>
#include <QMessageBox>

class myEllipse : public QGraphicsEllipseItem
{
public:
    myEllipse(QGraphicsEllipseItem* parent);
    void hoverEnterEvent(int index);
};

#endif // MYELLIPSE_H

#include "myellipse.h"

myEllipse::myEllipse(QGraphicsEllipseItem* parent):QGraphicsEllipseItem(parent){
    setAcceptHoverEvents(true);
}


void myEllipse::hoverEnterEvent(int index){
    QMessageBox q;
    q.setText("hello");
    q.exec();
}

我想用上面的类创建的对象替换QGraphicsEllipseItem。我该怎么做呢?

1 个答案:

答案 0 :(得分:0)

目前,你正在这样做: -

QGraphicsEllipseItem *ellipse;
ellipse = sceneCenter->addEllipse(xCor-4,yCor-4,imgW+7,imgH+7,blackpen,redBrush);

如果先创建新类的实例,则可以在之后添加它并设置其位置和其他属性: -

myEllipse * ellipse = new myEllipse(parent);
sceneCenter->addItem(ellipse);

ellipse->setRect(xCor-4,yCor-4,imgW+7,imgH+7);
ellipse->setPen(blackpen);
ellipse->setBrush(redBrush);