Есть ли способ изменить путь QGraphicsPathItem в Qt?
Я создал Предмет таким образом:
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
Так как path () возвращает QPainterPath, вам нужно изменить путь с помощью:
void QPainterPath::setElementPositionAt(int index, qreal x, qreal y)
и затем заново установите путь к QGraphicsPathItem.
Вот образец:
QPainterPath p = item->path();
p.setElementPositionAt(0, 0, -5);
item->setPath(p);
Было бы целесообразно также использовать:
path-> ElementCount ()
чтобы убедиться, что индекс, который вы хотите изменить, находится в допустимых пределах.
Других решений пока нет …