在布局中限制 QGraphicsView 小部件的最小尺寸是什么?

What is limitting the minimum size of a QGraphicsView widget when in a layout?

如果我自己有一个 QGraphicsView 小部件,我可以将它的大小调整为零,但是一旦我将它放入布局中,它就不想调整到小于 70x70 的大小。

这似乎不是通用 QWidget 的问题。

from PyQt5.QtWidgets import *

app = QApplication([])
w = QWidget()

gv1 = QGraphicsView()
gv1.setMinimumSize(0,0)
gv2 = QGraphicsView()
gv2.setMinimumSize(0,0)

l = QGridLayout()
l.addWidget(gv1)
l.addWidget(gv2)

l.setContentsMargins(0,0,0,0)
l.setSpacing(0)
w.setLayout(l)
w.show()
w.resize(100, 1)

app.exec_()

正如 minimumSize() 文档所说:

The minimum size set by this function will override the minimum size defined by QLayout. In order to unset the minimum size, use a value of QSize(0, 0).

这意味着如果您使用 setMinimumSize(0, 0),您将重置 最小尺寸,然后默认为小部件(或布局)minimumSizeHint().

有效的最小尺寸 方向 应始终至少为 1。
更改为:

gv1.setMinimumSize(1, 1)
gv2.setMinimumSize(1, 1)