Название: QWidget + Layout + QScrollArea Отправлено: 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); |