为什么:
graphics_view->fitInView(scene->sceneRect(), Qt::KeepAspectRatio);
无法按预期工作?它不能正确拟合场景矩形,显示它周围的边距。
答案 0 :(得分:4)
原因是这样的: https://bugreports.qt.io/browse/QTBUG-42331 - 请在qt bug跟踪器上对其进行投票以确定其优先级。
简而言之,fitInView具有硬编码边距,这可能会造成各种各样的破坏 - 其中最少的是现在你丢失了几个像素的显示区域,也可能会强制进行不必要的重新缩放。
您可以通过重新实现fitInView来解决问题,基于现有的实现,但删除它的荒谬边距。基于原始的C ++版本,可以在python中找到一个例子:
https://github.com/nevion/pyqimageview/blob/master/qimageview/widget.py#L276
答案 1 :(得分:2)
我弄清楚问题是什么,在this question中有描述。问题的主要原因是您不应在显示表单之前调用fitInView。
答案 2 :(得分:1)
您可以修复它重新实现原始的fitInView方法,但不包括边距。检查我的C ++解决方案:https://stackoverflow.com/a/42474510/6050364