Search code examples
c++qtqgraphicsviewqgraphicsitem

How to draw a triangle by using QGraphicsView's QGraphicsItem class


I want to draw a triangular object in QGraphicsView by using QGraphicsItem. But I don't know how to implement bounding rect according to triangler.


Solution

  • You could use a QGraphicsPolygonItem.

    You just have to describe a triangle polygon with QPolygonF and then add it to your scene with QGraphicsScene::addPolygon().

    // Describe a closed triangle
    QPolygonF Triangle;
    Triangle.append(QPointF(-10.,0));
    Triangle.append(QPointF(0.,-10));
    Triangle.append(QPointF(10.,0));
    Triangle.append(QPointF(-10.,0));
    
    // Add the triangle polygon to the scene
    QGraphicsPolygonItem* pTriangleItem = pScene->addPolygon(Triangle);
    

    This way, everything is handled by Qt, you don't have to worry about bounding rect.