Qt GraphicsView拉伸场景以适应

Joh*_*dio 9 c++ qt qgraphicsitem

好的,所以我使用Qt和C++作为我的环境.

QGraphicsView在我的UI中绘制了一个.

然后我创建一个场景并为该场景添加线条.我运行5000点的数组并画出连接每个点的线.

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++;
}
Run Code Online (Sandbox Code Playgroud)

问题是我抓到的数字非常小,例如2.000e-12.这些数字将根据应用程序不断变化.如何调整我的场景以拉伸以填充我的QGraphicsView.现在,我看到的只是我视角中心的一个点.我有道理吗?

Ste*_*Chu 10

使用sceneRect在QGraphicsScene中的QGraphicsView :: fitInView()会做缩放到适合你.


Liv*_*ive 1

我自己从未使用过它,但在 Qt 文档中有一个

void QGraphicsView::scale ( qreal sx, qreal sy )
Run Code Online (Sandbox Code Playgroud)

它允许您在 x 轴和 y 轴上缩放视图。如果还不够,您可以(如果在您的项目中可能的话)在值太小或太大时手动缩放,当您绘制线条并将相同的因子应用于其他所有内容时。但如果可能的话,我会使用 Qt 中包含的缩放方法。

希望这可以帮助。