在布局中限制 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)
如果我自己有一个 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)