如何在QGraphicsView中重置比例?

时间:2016-08-23 12:55:03

标签: c++ qt qgraphicsview

如何重置图形视图的比例,而不管之前应用的比例是什么?使用scale()将我给它的比例乘以前一个:

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)。

2 个答案:

答案 0 :(得分:9)

我查看了源代码,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)

答案 1 :(得分:2)

要添加的东西:

QGraphicsView::resetMatrix()等价于QGraphicsView::resetTransform(),从源码可以看出:

void QGraphicsView::resetMatrix()
{
    resetTransform();
}