Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: Sanya от Май 21, 2010, 13:56



Название: Поведение QLayout и QSpacerItem
Отправлено: Sanya от Май 21, 2010, 13:56
Люди добрые, голова уже кипит.

Не могу понять поведение QLayout и в частности QSpacerItem.
Сделал класс для плавного раскрытия виджета. Суть его такова: по таймеру прибавляю/убавляю maximumSize указанного виджета. Кидаю на форму QLayout на него, допустим, QFrame и QSpacerItem. В итоге, при плавном изменении размеров QFrame происходят скачки - QSpacerItem как то странно занимает свободное место. Заменил QSpacerItem на прозрачный Qwidget с QSizePolicy::Expanding - все работает замечательно.
И еще. Как можно в реалтайме спрятать/убрать/удалить QSpacerItem. Нужно, что бы вывести по середине сообщение о недоступности(к примеру).
Понимаю, вникать долго - может хотя бы литературу какую толковую по компоновке(кроме Шлее и Бланшет)?
P.S.:
  Если кто захочет по разбираться к пн могу предоставить исходники-примеры.


Название: Re: Поведение QLayout и QSpacerItem
Отправлено: NicK от Май 21, 2010, 14:09
И еще. Как можно в реалтайме спрятать/убрать/удалить QSpacerItem. Нужно, что бы вывести по середине сообщение о недоступности(к примеру).
1. Стандартный delete по указателю на объект не работает что ли?
2. Если для вывода сообщений не устраивает QMessageBox и надо чтоб оно выводилось на самой форме, можно использовать QLabel, который поддерживает html форматирование текста. в том числе и выравнивание  :)


Название: Re: Поведение QLayout и QSpacerItem
Отправлено: Sanya от Май 21, 2010, 18:11
1. да, delete
2. дык QLabel и использую, но он смещается либо в верх, либо вниз, ведь вторым объектом на QLyaout является QSpacerItem! Некрасиво! Нужно по центру.