5

为什么这个:

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

没有按预期工作?它没有正确拟合场景矩形,显示它周围的边距。

4

3 回答 3

4

原因是这样的: https ://bugreports.qt.io/browse/QTBUG-42331 - 请在 qt 错误跟踪器上投票以提高其优先级。

简而言之,fitInView 具有硬编码的边距,这可能会导致各种破坏——其中最少的是现在您丢失了几个像素的显示区域,并且还可能强制进行不必要的重新缩放。

您可以通过基于现有实现重新实现 fitInView 来解决此问题,但删除它的可笑边距。基于原始 C++ 版本的 python 中提供了一个示例:

https://github.com/nevion/pyqimageview/blob/master/qimageview/widget.py#L276

于 2015-05-05T11:17:40.167 回答
2

我弄清楚了问题所在,在这个问题中有描述。问题的主要原因是您不应该在显示表单之前调用 fitInView。

于 2013-10-29T15:31:36.073 回答
1

您可以通过重新实现原始 fitInView 方法来修复它,但不包括边距。检查我的 C++ 解决方案:https ://stackoverflow.com/a/42474510/6050364

于 2017-02-26T21:36:58.660 回答