1
votes

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 &lt 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 boundingRect() 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&lt 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?

1

1 Answers

1
votes

That should be:

clothoids.append(temp);
scene->addItem(temp);

The QList should be defined as:

QList<Clothoid*> clothoids;