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继承自QAbstractScrollAreaviewport()返回由滚动区域管理的widget,通常比实际的滚动区域widget大(首先使用滚动区域的原因)。

可见区域的正确大小是QGraphicsView 的大小(调用内部小部件视口有点误导)。

【讨论】:

以上是关于QGraphicsView视口矩形问题的主要内容,如果未能解决你的问题,请参考以下文章

QGraphicsView右键鼠标按下事件问题

如何在 QGraphicsView 中自动正确设置矩形?

QGraphicsView 和 QGraphicsItem:缩放视图矩形时不要缩放项目

如何在不缩放场景的情况下与 QGraphicsView 左侧的矩形对齐?

如何使用 QGraphicsView 的 translate() 函数?

无法将图像加载到 QGraphicsView(浮点除以零)。识别矩形,但不会设置场景