Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: sergek от Август 06, 2013, 20:07



Название: [РЕШЕНО] Динамическое изменение размера виджета
Отправлено: sergek от Август 06, 2013, 20:07
Коллеги, нужно в динамике изменить размер родительского виджета по размеру виджетов, содержащемся в нем.
Родительский виджет порожден от QMainWindow. Внутри него панели QFrame с фиксированными размерами, компоновка внутри главной формы - по вертикали.
В процессе выполнения некоторые панели становятся невидимыми, некоторые видимыми. Нужно, чтобы родительская форма принимала размер по сумме видимых панелей.
После установки видимости включенных в форму панелей делаю resize(size().width(),0). Ожидаю, что все включенные панели "прижмутся" друг к другу по вертикали. На деле, при увеличении размеров включенных фреймов все нормально. При уменьшении - остаются "дыры".
Понимаю, что что-то не понимаю с лейаутами. А что?


Название: Re: Динамическое изменение размера виджета
Отправлено: andrek от Август 07, 2013, 16:51
у меня работает: resize(minimumSizeHint());


Название: Re: Динамическое изменение размера виджета
Отправлено: sergek от Август 07, 2013, 20:59
у меня работает: resize(minimumSizeHint());
К сожалению, у меня не получилось  :(
Во вложении - пример. Надо последовательно в комбобоксе менять текущее значение, увидите.


Название: Re: Динамическое изменение размера виджета
Отправлено: _OLEGator_ от Август 07, 2013, 21:33
Как вариант:
Код
C++ (Qt)
QApplication::processEvents();
 
adjustSize();


Название: Re: Динамическое изменение размера виджета
Отправлено: sergek от Август 08, 2013, 19:02
Как вариант:
Спасибо! Cработало.