Пытаюсь сделать сабж с QGraphicsWidget, добавленный в QGraphicsGridLayout.
Сперва установил виджету heightForWidth = true
C++ (Qt)
MyWidget::MyWidget(QGraphicsItem *parent, Qt::WindowFlags wFlags)
: QGraphicsWidget(parent, wFlags)
{
QSizePolicy pol(QSizePolicy::Preferred, QSizePolicy::Preferred);
pol.setHeightForWidth(true);
setSizePolicy(pol);
}
Затем переписал метод sizeHint
C++ (Qt)
QSizeF MyWidget::sizeHint(Qt::SizeHint which, const QSizeF &constraint) const
{
if (which == Qt::PreferredSize)
{
if (constraint.width() >= 0)
{
qDebug() << constraint;
return QSizeF(constraint.width(), constraint.width());
}
return QSizeF(100, 100);
}
else
return QGraphicsWidget::sizeHint(which, constraint);
}
Добавил его в QGraphicsGridLayout и виджет тянется во все стороны без каких либо пропоций. Если делаешь sizeHint = Fixed, тогда вообще не тянется, но квадратный.
Гугление мне пока не помогло. Видел статьи по этому поводу, но не видел историй успеха в конце.
Во вложении - минимальный пример.
Если кто разбирался с этой темой, помогите плиз, очень надо