我在我的圖形場景中繪製一個橢圓。當橢圓傾斜時,其邊界的一部分不會立即出現。在重新調整窗口大小或在圖形場景中執行放大或縮小操作後,橢圓邊界會更新,並獲得所需的完美形狀。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();
我已附加的橢圓兩例的屏幕截圖:
如何解決這個問題?
感謝您指出瞭如此多的錯誤。如果你可以提供一些提示,我將無法知道如何使用它。 – 2014-10-06 13:58:50
我應該在哪裏調用preparegeometrychange函數? – 2014-10-06 15:38:20
每種方法都會影響到'p1','majRadius','minRadius'和'theta'對'boundingRect()'有影響,所以這個方法應該調用'preparegeometrychange'。 – 2014-10-06 21:13:08