Я создал QGraphicsPathItem, передав конструктору QPainterPath с примерно 10 QPoint. Теперь, как я могу перемещать точки на пути вокруг?
Например:
Это для создания коробки:
path = QtGui.QPainterPath()
path.moveTo(0, 0)
path.lineTo(10, 0)
path.lineTo(10, 10)
path.lineTo(0, 10)
line = QtGui.QGraphicsPathItem()
line.setPath(path)
Теперь, по прошествии некоторого времени, я хочу сделать эту коробку шире, захватив верхнюю и нижнюю правые точки и переместив их вправо. Как я могу получить доступ к точкам? Документация Qt для QPainterPath указывает, что path.elementAt(i)
— это способ доступа к данным внутри пути, но он возвращает QElementObject, и я не смог найти много документации для «объекта элемента», и это определенно не QPointF (что я бы хотел ожидать получить... верно?). Итак, как я могу получить QPointF из этого элемента? И как только я получу очки, можно ли просто вызвать их QPointF.setX()
и QPointF.setY()
, и линия будет перерисовываться, или мне нужно переустановить ее в QGraphicsPathItem с новым вызовом line.setPath()
?
В качестве примечания это PyQt4, python 2.7. Однако я приму ответ на С++, если он у вас есть, хотя я вообще не знаю С++, его довольно легко перевести.