QGraphicsView视口矩形问题
Posted
技术标签:
【中文标题】QGraphicsView视口矩形问题【英文标题】:QGraphicsView viewport rect problems 【发布时间】:2013-10-28 19:53:50 【问题描述】:当我将场景矩形设置为视口的相同矩形时:
mCanvasScene->setSceneRect(mCanvasView->viewport()->rect());
QGraphicsView
在小部件中创建滚动条,但如果场景与视口大小相同,为什么会有滚动条?视口中的rect()
似乎不是视口区域的正确大小。
有谁知道如何设置与视口可见区域大小相同的场景?
【问题讨论】:
你能提供一个SSCCE吗?我似乎无法重现这一点。当我做view->scene()->setSceneRect(view->viewport()->rect());
时,我没有滚动条。
GraphicsScene 上的 GraphicsView 就像一扇面向世界的窗口。要将场景设置为视图的大小似乎很奇怪。
为什么想要与视口大小相同的场景很奇怪?
thuga,你是在表格显示之前还是之后调用它?如果表格显示后,我会打电话。
【参考方案1】:
QGraphicsView
继承自QAbstractScrollArea
,viewport()
返回由滚动区域管理的widget,通常比实际的滚动区域widget大(首先使用滚动区域的原因)。
可见区域的正确大小是QGraphicsView
的大小(调用内部小部件视口有点误导)。
【讨论】:
以上是关于QGraphicsView视口矩形问题的主要内容,如果未能解决你的问题,请参考以下文章
QGraphicsView 和 QGraphicsItem:缩放视图矩形时不要缩放项目
如何在不缩放场景的情况下与 QGraphicsView 左侧的矩形对齐?