Russian Qt Forum
Ноябрь 27, 2024, 06:40 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: QWidget + Layout + QScrollArea  (Прочитано 3209 раз)
Alp
Гость
« : Август 24, 2009, 23:05 »

Есть следующее: в главном окне лежит QScrollArea, в которой лежит мой виджет (QMyWidget) унаследованный от QWidget, внутри которого лейаут с несколькими QLabel.
При запуске приложения все QLabel на виджете растянуты по вертикали. Т.е. size() для каждой возвращает высоту 30, хотя sizeHint() возвращает 20. В итоге и QMyWidget выше, чем требуется.
Почему такое может происходить?
UPD: Быстрый воркэраунд: перегрузить sizeHint и возвращать из него layout->minimumSize(). Однако решение идеологически верное хочется знать

Вопрос №2: Есть ли относительно просто способ реализовать следующее поведение:
- виджет с лейаутом лежит в QScrollArea
- каждый виджет имеет минимальный размер
- каждый виджет растянут соотвественно своему весу в лейауте
- при изменении размеров окна (и родительского для лейаута виджета) виджеты в лейауте изменяют свои размеры до минимума, после чего ещё уменьшить размер окна невозможно
- при увеличении размера виджеты увеличиваются соотвественно весам в лейауте
Решено:
area->setWidget(splitter);
area->setWidgetResizable(1);
« Последнее редактирование: Август 25, 2009, 00:21 от Alp » Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.064 секунд. Запросов: 20.