Да, я смотрел ии этот пример то же, только у меня такая проблема, после того как я определил:
void Link::paint(QPainter *painter,
const QStyleOptionGraphicsItem *option,
QWidget * /* widget */)
{
if (myFromNode->collidesWithItem(myToNode))
return;
arrowHead.clear();
painter->setRenderHint(QPainter::Antialiasing, true);
double angle = ::acos(line().dx() / line().length());
if (line().dy() >= 0)
angle = (Pi * 2) - angle;
QPointF arrowP1 = line().p1() + QPointF(sin(angle + Pi / 3) * arrowSize,
cos(angle + Pi / 3) * arrowSize);
QPointF arrowP2 = line().p1() + QPointF(sin(angle + Pi - Pi / 3) * arrowSize,
cos(angle + Pi - Pi / 3) * arrowSize);
arrowHead << line().p1() << arrowP1 << arrowP2;
//painter->drawLine(line());
painter->drawPolygon(arrowHead);
у меня стрелка рисуется, вот только после того как я ее по экрану двигать начинаю на сцене появляются артефакты, см. вложение..
Как от них избавится ?
И еще обьясните для чего и как используется функция
QRectF MyClass::boundingRect() const
{
}