Я рисую эллипс в своей графической сцене. Когда эллипс наклонен, часть его границы не появляется сразу. После того, как я изменил размер окна или выполнил действие масштабирования или масштабирования в моей графической сцене, граница эллипса обновляется, и я получаю идеальную форму, которая требуется.QGraphicsScene не обновляется сразу
Я определил свою функцию краски для моего эллипса, как:
QPainterPath ellipse;
ellipse.moveTo(p1.x()+majRadius, p1.y());
ellipse.arcTo(boundingRect(), 0 , 360);
QPen paintpen(Qt::black);
paintpen.setWidth(1);
painter->setRenderHint(QPainter::Antialiasing);
painter->setPen(paintpen);
painter->save();
painter->translate(p1.x(), p1.y());
painter->rotate(theta);
painter->translate(-p1.x(), -p1.y());
painter->drawPath(ellipse);
painter->restore();
Определение моего ограничивающего прямоугольника:
return QRectF(p1.x()-majRadius, p1.y()-minRadius,
2*majRadius, 2*minRadius).normalized();
Я приложил скриншот два случая эллипса:
Как решить эту проблему?
Спасибо, что указали так много ошибок. в документации для перевода и ротации. Приступая к 'preparegeometrychange', я не смог понять, как его использовать, если бы вы могли дать некоторый намек. –
Где я могу назвать функцию« preparegeometrychange »? –
каждый метод, который влияет на 'p1',' majRadius', 'minRadius' и' theta' влияют на 'boundingRect()', поэтому эти методы должны вызывать 'preparegeometrychange'. –