为什么这个:

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

不能按预期工作?它与场景rect的拟合不正确,显示了周围的空白。

最佳答案

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

简而言之,fitInView具有硬编码的页边距,这会造成各种破坏-至少是现在您损失了显示区域的几个像素,并且还可能强制进行不必要的缩放。

您可以通过基于现有实现重新实现fitInView来解决问题,但要消除它的可笑之处。基于原始C++版本,可以在python中找到一个示例:

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

10-04 12:59