QGraphicsView fitInView 边距。

5

为什么要这么做:

graphics_view->fitInView(scene->sceneRect(), Qt::KeepAspectRatio);

出现了意料之外的问题?它没有正确地适应场景矩形,显示出周围的边距。


3
请添加一个最小的代码示例和一张截图,以及它与您期望的有何不同。 - Frank Osterfeld
3个回答

4
原因是这样的:https://bugreports.qt.io/browse/QTBUG-42331 - 请在qt bug跟踪器上投票以提高其优先级。
简而言之,fitInView有硬编码的边距,这可能会导致各种混乱 - 最小的问题是现在您会失去一些像素的显示区域,也可能会强制进行不必要的重新缩放。
您可以通过重新实现fitInView来解决问题,该实现基于现有实现,但删除了其荒谬的边距。 这里提供了一个示例,使用Python基于原始的C ++版本:https://github.com/nevion/pyqimageview/blob/master/qimageview/widget.py#L276

2

我找到了问题所在,可以在这个问题中找到。问题的主要原因是在表单显示之前不应该调用fitInView。


实际上,这取决于您所说的“仅边距”是指什么。我猜想,既然您也问了这个问题,那么它可能是指您在链接的问题中提到的那些巨大的边距。无论如何,在显示表单之前,您都可以随意调用fitInView函数。 - Jason Newton

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接