I have a QGraphicsScene on which I would like to draw some special curves. For that I made a class in which I define these special curves as a new QGraphicsItem:
#include < QGraphicsItem> class Clothoid : public QGraphicsItem { public: Clothoid(QPoint startPoint, QPoint endPoint); virtual ~Clothoid(); QPoint sPoint; QPoint ePoint; float startCurvature; float endCurvature; float clothoidLength; protected: QRectF boundingRe开发者_如何学Goct() const; void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget); };
and I try to insert each item twice: once in an array I defined:
QList< Clothoid> clothoids;
and once in the scene:
void renderArea::updateClothoid(const QPoint &p1, const QPoint &p2) { Clothoid *temp = new Clothoid(p1, p2); clothoids.append(&temp); scene->addItem(&temp); }
But I get these 2 errors:
no matching function for call to 'QList::append(Clothoid**)'
and
no matching function for call to 'QGraphicsScene::addItem(Clothoid**)'
What am I doing wrong?
That should be:
clothoids.append(temp);
scene->addItem(temp);
The QList should be defined as:
QList<Clothoid*> clothoids;
精彩评论