10

わかりましたので、環境として Qt と C++ を使用しています。

QGraphicsViewUI にa を描画します。

次にシーンを作成し、そのシーンにセリフを追加します。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. 今、私が見るのは私の視野の中心にある点だけです. 私は理にかなっていますか?

4

3 に答える 3

11

QGraphicsView::fitInView()で QGraphicsScene の sceneRect を使用すると、ズーム ツー フィットが実行されます。

于 2010-10-15T14:02:34.707 に答える
1

私は自分で使用したことはありませんが、Qt docには

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

これにより、x 軸と y 軸でビューをスケーリングできます。十分でない場合は、(プロジェクトで可能であれば) 値が小さすぎたり大きすぎたりするときに、手動でズームして、線を描画し、この同じ係数を他のすべてに適用することができます。しかし、可能であれば、Qt に含まれている scale メソッドを使用します。

お役に立てれば。

于 2010-10-15T13:32:29.517 に答える
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());
于 2011-03-04T13:23:10.337 に答える