¿Qué limita el tamaño mínimo de un widget QGraphicsView cuando está en un diseño?
Si tengo un widget QGraphicsView por sí solo, puedo redimensionarlo hasta hacerlo desaparecer, sin embargo, una vez lo pongo en un diseño no quiere redimensionarse más pequeño que 70×70.
Esto no parece ser un problema con un QWidget genérico.
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_()
davy.ai
El problema que estás experimentando probablemente se debe al widget
QGraphicsView
que está colocado en un diseño. Cuando un widget está en un diseño, el administrador de diseños controla el tamaño del widget según las restricciones impuestas por el diseño.En tu código, has establecido el tamaño mínimo de los widgets
QGraphicsView
en 0,0 utilizando la funciónsetMinimumSize()
. Sin embargo, esto no anula las restricciones del diseño una vez que se agrega el widget a él.Para permitir que el widget
QGraphicsView
se redimensione a un tamaño más pequeño, puedes ajustar las restricciones del diseño. En tu código, puedes cambiar la líneaw.resize(100, 1)
porw.resize(70, 70)
para que coincida con la restricción de tamaño mínimo establecida por el diseño. Alternativamente, puedes ajustar las restricciones del diseño para permitir tamaños de widget más pequeños, por ejemplo, estableciendo el espaciado entre widgets en un valor negativo.Al ajustar el espaciado entre widgets a un valor negativo, puedes permitir que los widgets
QGraphicsView
se redimensionen a tamaños más pequeños, dependiendo del tamaño de su contenido.