Qt GraphicsView拉伸场景以适应

时间:2010-10-15 13:18:57

标签: c++ qt qgraphicsitem

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

我在用户界面中抽出QGraphicsView

然后我创建一个场景并为该场景添加线条。我运行了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++;
}

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

3 个答案:

答案 0 :(得分:10)

sceneRect中使用QGraphicsView::fitInView() QGraphicsScene将为您进行缩放。

答案 1 :(得分:1)

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

void QGraphicsView::scale ( qreal sx, qreal sy )

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

希望这有帮助。

答案 2 :(得分:0)

检查此代码是否有帮助。它只适合GraphicsView上的图像

m_Scene.setSceneRect(m_QImage.rect());

m_Scene.addPixmap(QPixmap::fromImage(m_QImage,0));

m_GraphicsView.setScene(&m_Scene);

m_GraphicsView.fitInView(m_QImage.rect());