1

有没有办法在 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
4

1 回答 1

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);

还可以使用:

路径->元素计数()

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

于 2013-09-17T06:38:43.350 回答