如果我将像素图设置为比窗口大的QGraphicsScene
,它会添加滚动条,那么是否可以获得QGraphicsView
中显示的内容?
滚动和更改显示区域时是否有任何事件?
这是我正在谈论的屏幕:
由于
答案 0 :(得分:10)
您可以按如下方式确定场景坐标中的可见区域:
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)
信号以跟踪滚动。
答案 1 :(得分:1)
另外,请注意视口包含一个函数,可以将场景区域放入视图中,以便您可以使用以下方法查看所有区域: -
void QGraphicsView::fitInView(const QRectF & rect, Qt::AspectRatioMode aspectRatioMode = Qt::IgnoreAspectRatio)