2016-08-23 30 views
2

適用された以前の縮尺に関係なく、どのようにグラフィックスビューの縮尺をリセットできますか?使用scale()私は、以前のものにそれを与える規模を乗算:QGraphicsViewで縮尺をリセットするにはどうすればいいですか?

ui->graphicsView->scale(0.1, 0.1); 
ui->graphicsView->scale(2, 2); 
// the scale factor is (0.2,0.2), NOT (2,2) 

これは私が欲しいものではありません、私は(2,2)にスケールを設定します。

答えて

6

私は情報源に見て、scale()は、内部行列を使用しています。

void QGraphicsView::scale(qreal sx, qreal sy) 
{ 
    Q_D(QGraphicsView); 
    QTransform matrix = d->matrix; 
    matrix.scale(sx, sy); 
    setTransform(matrix); 
} 

ありマトリックスをリセットする機能があり、かつスケールを適用する前に、それを呼び出すと作品:

view->scale(0.1, 0.1); 
view->resetMatrix(); 
view->scale(2, 2); 
// the scale factor is (2,2) 
関連する問題