创建QGraphicsItem列表时出错

时间:2011-08-02 08:42:44

标签: qt4 qlist qgraphicsscene

我有一个QGraphicsScene,我想画一些特殊的曲线。为此,我创建了一个类,我将这些特殊曲线定义为一个新的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);

    };

我尝试将每个项目插入两次:一次在我定义的数组中:


    QList< Clothoid> clothoids;

并且在场景中一次:


    void renderArea::updateClothoid(const QPoint &p1, const QPoint &p2)
    {
        Clothoid *temp = new Clothoid(p1, p2);

        clothoids.append(&temp);

        scene->addItem(&temp);
    }

但我得到了这两个错误:

没有用于调用'QList :: append(Clothoid **)'

的匹配函数

没有用于调用'QGraphicsScene :: addItem(Clothoid **)'的匹配函数

我做错了什么?

1 个答案:

答案 0 :(得分:1)

应该是:

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

QList应定义为:

QList<Clothoid*> clothoids;