如果我将像素图设置QGraphicsScene
为大于窗口的像素图,它将添加滚动条,那么是否有可能获得显示在窗口中的内容QGraphicsView
?
另外在滚动和更改显示区域时是否引发了任何事件?
这是我正在谈论的屏幕:
谢谢
如果我将像素图设置QGraphicsScene
为大于窗口的像素图,它将添加滚动条,那么是否有可能获得显示在窗口中的内容QGraphicsView
?
另外在滚动和更改显示区域时是否引发了任何事件?
这是我正在谈论的屏幕:
谢谢
您可以按如下方式确定场景坐标中的可见区域:
QRect viewport_rect(0, 0, view->viewport()->width(), view->viewport()->height());
QRectF visible_scene_rect = view->mapToScene(viewport_rect).boundingRect();
您可以使用QGraphicsItem::mapFromScene
将场景坐标转换为项目坐标是必要的。
您可以使用view->horizontalScrollBar()
和view->verticalScrollBar()
来获取QScrollBar*
对象。连接到valueChanged(int)
这些对象的信号以跟踪滚动。
另外,请注意视口包含一个功能,可以将场景的某个区域放入视图中,以便您可以使用以下方法查看所有该区域:-
void QGraphicsView::fitInView(const QRectF & rect, Qt::AspectRatioMode aspectRatioMode = Qt::IgnoreAspectRatio)