Qt GraphicsView stretch scene to fit

JohnStudio picture JohnStudio · Oct 15, 2010 · Viewed 10.2k times · Source

Ok, so I am using Qt and C++ as my environment.

I draw out a QGraphicsView in my UI.

I then create a scene and add lines to that scene. I run through an array of 5000 points and draw lines connecting each point.

QGraphicsScene *scene = new QGraphicsScene();
QPen pen2 = QPen(Qt::blue, 8.0);
int j=1;
for (int i=1; i<5000; i++)
{
    scene->addLine(xArray[i],yArray[i],xArray[j],yArray[j], pen2);
    j++;
}

The problem is that the numbers I am grabbing are very small, e.g. 2.000e-12. The numbers will consistently change based on the application. How can I adjust my scene to stretch to fill in my QGraphicsView. Now, all I see is a dot in the center of my view. Am I making sense?

Answer

Stephen Chu picture Stephen Chu · Oct 15, 2010

Using sceneRect of your QGraphicsScene in QGraphicsView::fitInView() will do the zoom-to-fit for you.