Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: Danila_Bagrofff от Ноябрь 23, 2009, 13:30



Название: Автоматический подгон размеров QDialog под контент
Отправлено: Danila_Bagrofff от Ноябрь 23, 2009, 13:30
Есть диалог, в котором в зависимости от выбираемых параметров, меняется количество виджетов, отображаемых на диалоге.
При этом размер диалога остается всегда неизменным и подгоняется под максимальное количество виджетов.

На диаложке используются лэауты, которые компануют виджеты минимальным образом. При этом размер основного окна не подгоняется.
Хотя виджету задаю такие параметры:

setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::MinimumExpanding);
И задал еще setMinimumSize(0,0);
При скрытии элементов (через setVisible()) вызываю updateGeometry() для диалога. Но перерисовку с уменьшением размера он не делает.

Не хочется использовать отлавливание каких-то event'ов для переопределения размеров существующего виджет-контента и изменения размера диалога.

Не уж то нельзя как-то задать политику изменения размера под контент на диалоге? Или я что-то упустил?


Название: Re: Автоматический подгон размеров QDialog под контент
Отправлено: ax от Ноябрь 23, 2009, 14:26
QLayout диалога setSizeConstraint(QLayout::SetFixedSize)
или в designer свойства диалога секция Layout/layoutSizeConstraint = SetFixedSize


Название: Re: Автоматический подгон размеров QDialog под контент
Отправлено: Danila_Bagrofff от Ноябрь 23, 2009, 14:31
благодарю. получилось!


Название: Re: Автоматический подгон размеров QDialog под контент
Отправлено: lit-uriy от Ноябрь 23, 2009, 14:49
>>И при скрытии элементов (через setVisible()) вызываю updateGeometry() для диалога. Но перерисовку он не делает.
void QWidget::adjustSize ()