Search code examples
qt4qlistqgraphicsscene

Error by creating a list of QGraphicsItems


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 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< 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?


Solution

  • That should be:

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

    The QList should be defined as:

    QList<Clothoid*> clothoids;