LINUX.ORG.RU

Qt3:компоновка+QVLayout


0

0

Господа!
Прошу помочь разобраться с компоновкой виджетов и layout-ов.
Имею:

all = new QVBoxLayout(this);
top = new QHBoxLayout();
.......................................
all->addLayout(top);
all->setResizeMode(QLayout::Auto);

затем в прорамме по разным событиям в all добавляется и удаляется еще один виджет 

all->addWidget(m_grid); и all->remove(m_grid); соотв-о.

Проблема в том, что m_grid каждый раз разного размера и когда после большего m_grid добавляется меньший, то окошко остается большего размера, то есть не ресайзится до размеров виджета меньшего размера.
Подскажите куда копать.
Спасибо.

Re: Qt3:компоновка+QVLayout

void QWidget::adjustSize () [virtual slot]

Adjusts the size of the widget to fit the contents.

Uses sizeHint() if valid (i.e if the size hint's width and height are >= 0), otherwise sets the size to the children rectangle (the union of all child widget geometries).

alex_custov ★★★★★ ()
Ответ на: Re: Qt3:компоновка+QVLayout от alex_custov

Re: Qt3:компоновка+QVLayout

спасибо, но я так и делал.
Все выше описанное являлось классом field, а в самой main() я делал

field->adjustSize();
field->show();

Что не так?

najar ()
Ответ на: Re: Qt3:компоновка+QVLayout от najar

Re: Qt3:компоновка+QVLayout

ты написал, что "в прорамме по разным событиям в all добавляется и удаляется еще один виджет "

adjustSize() нужно делать как раз после добавления/удаления виджетов в layout.

alex_custov ★★★★★ ()
Ответ на: Re: Qt3:компоновка+QVLayout от najar

Re: Qt3:компоновка+QVLayout

Вообщето в QT для этого существует класс QSizePolicy - задаём виджету QSizePolicy::Minimum и радуемся.

teferiincub ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.