我有一个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 **)'的匹配函数
我做错了什么?
答案 0 :(得分:1)
应该是:
clothoids.append(temp);
scene->addItem(temp);
QList应定义为:
QList<Clothoid*> clothoids;