Qt修改PathItem

时间:2013-06-01 21:57:09

标签: c++ qt operators qgraphicsitem

有没有办法在Qt中修改QGraphicsPathItem的路径?

我用这种方式创建了项目:

    QGraphicsPathItem* item = new QGraphicsPathItem();
    QPainterPath* path = new QPainterPath();
    path->cubicTo(3,5, 3,10, 0,15);
    item->setPath(*path);
    item->moveBy(-20,-20);
    scene->addItem(item);

现在我想修改路径的元素:

    item->path().elementAt(0).y = -5;
    item->path().elementAt(0).x =  0;

但我得到以下错误:

assignment of member 'QPainterPath::Element::y' in read-only object

1 个答案:

答案 0 :(得分:0)

由于path()返回QPainterPath,您需要使用以下命令修改路径:

void QPainterPath::setElementPositionAt(int index, qreal x, qreal y)

然后重新设置QGraphicsPathItem的路径。

以下是一个示例:

QPainterPath p = item->path();
p.setElementPositionAt(0, 0, -5);
item->setPath(p);

使用也是明智的:

路径 - > elementCount中()

确保您想要修改的索引在范围内。