我在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。我该怎么做呢?
答案 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);