LINUX.ORG.RU

Qt, QBoxLayout, проблема с ресайзом.

 , ,


0

1

Здравствуй ЛОР. Пишу для себя панельку в образовательных целях.

Сама панелька это QWidget с QBoxLayout'ом. В лэйауте могут находится другие виджеты или лэйауты.

Собственно в чем проблема: изначально панель находится сверху, растянутая на весь экран и имеет высоту 30px. Для того чтобы подвинуть панель к левой границе экрана я двигаю панель в левый верхний угол, вызываю метод resize( 30, desktopHeight() ) и делаю направление лэйаута QBoxLayout::TopToBottom. Но ширина панели не становится равна 30 пикселям, а становится равна ширине какого то виджета, находящегося в самом менеджере компоновки. После второго вызова метода resize панель становится правильного размера.

Панель до поворота

Панель после поворота


Скорее всего, надо смотреть в сторону QSizePolicy...

Ну либо в лоб ресайзить не только саму панель, но и все виджеты на ней, но это как-то костыльно.

solovey ★★
()
Ответ на: комментарий от Sakura

Ничего не задается. Насчет ресайза лэйаутов: если я ресайзю виджет в котором лэйаут, сам лэйаут разве не изменит своих размеров?

karmich
() автор топика
Ответ на: комментарий от karmich

SizePolicy по умолчанию - fixed. Чтобы у тебя виджеты подстраивались под размеры лейаута попробуй задать им QSizePolicy::Expanding

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