如何重置图形视图的比例,而不管之前应用的比例是什么?使用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)。
答案 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();
}