如何通过QGraphicsView看到topleft转角并在缩放时保持它的位置?
因此,如果我在缩放时恰好在前角有一个符号'A',那么A将保持在那里然后缩放。目前屏幕的中心是作为比例原点。但我希望topleft corner成为转型的起源。
即,在图形视图中看到的是topleft,而不是整个图形场景。 我该怎么做?
这是我的缩放代码,用于将场景的宽度的100%缩放到视口:
void GraphicsView::resizeEvent(QResizeEvent *event)
{
QGraphicsView::resizeEvent(event);
double scale_delta = (double) event->size().width() / scene()->width();
resetMatrix();
scale(scale_delta, scale_delta);
}
解
void GraphicsView::resizeEvent(QResizeEvent *event)
{
QGraphicsView::resizeEvent(event);
if (!first_shown)
{
centerOn(0, 0);
first_shown = true;
}
QPointF topleft = mapToScene(viewport()->rect().topLeft());
resetMatrix();
QPointF shift = (mapToScene(viewport()->rect().bottomRight() + QPoint(1, 1)) - mapToScene(viewport()->rect().topLeft()));
shift /= (double) event->size().width() / scene()->width();
fitInView(QRectF(topleft, topleft + shift));
}
答案 0 :(得分:0)
如果我理解你的问题,你需要的基本步骤是: