使用 QGraphicsView.fitInView( ... ),如何预测是否需要滚动条?

问题描述

我有一个 PyQt5 项目,我在其中在 QGraphicsScene 中创建复杂的几何对象,并在 QGraphicsView 中显示它们 - 标准内容

当我在大型 (1920x1080) 显示器上运行我的代码时,场景显示得很好,没有滚动条。然而,当我在 1366x768 设备上运行它时,视口太小,我只能看到对象的一部分,带有滚动条。

在这两种情况下,窗口开始最大化。)

为了解决这个问题,我在窗口初始化时添加了以下代码

my_view.fitInView(my_scene.sceneRect(),Qt.KeepAspectRatio)

这在小显示器上完美运行。但是,在大显示器上,现在视口变小了,场景也比以前小了。

所以我尝试提前预测场景是否适合视图,并打印出一些尺寸来尝试解决方法

print("A",my_scene.sceneRect().size())
print("B",my_view.size())
print("C",my_view.viewport().size())

我明白了:

A PyQt5.QtCore.QSizef(227.0,702.0)
B PyQt5.QtCore.QSize(640,480)
C PyQt5.QtCore.QSize(621,478)

在 fitInView() 之前和之后,我在两个显示器上获得了相同的一组数字。

如何在没有滚动条的情况下预测场景是否适合视图,以便在不需要时不会使图形变小,但在不适合时仍会重新缩放?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)