Здравствуйте, baf, Вы писали:
baf>Не могу понять как сделать потомка QWidget, такого, чтобы вёл себы в QHBoxLayout как кнопка. Т.е. был фиксирован по высоте, не сжимался бы по ширине меньше заданного размера, и растягивался по ширине на всю область.
baf>Переопределил метод sizeHint():
baf>baf>QSize SOFMWidget::sizeHint()
baf>{
baf> return QSize(img.width(), img.height());
baf>}
baf>
baf>установил QSizePolicy в конструкторе:
baf>baf>SOFMWidget::SOFMWidget(QWidget *parent) :
baf> QWidget(parent), m_sofm(0)
baf>{
baf> setSizePolicy(QSizePolicy::Fixed, QSizePolicy::MinimumExpanding);
baf>}
baf>
baf>Но не работает. При изменении размеров окна которое содержит мой виджет — мой виджет меняется произвольно. Хотя кнопка ведёт себя как нужно.
baf>Пожалуйста, помогите разобраться. Видимо, я категорически неправильно понимаю QSizePolicy
я думаю, логично было бы внимательно посмотреть SizePolicy у дефолтной кнопки

В данном случае вы немного перепутали, надо вот так:
setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Fixed);
К тому же, есть вот еще один момент.
> Т.е. был фиксирован по высоте, не сжимался бы по ширине меньше заданного размера,
минимальный размер можно выставит руками с помощью функции setMinimumSize().