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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: QScrollArea на все доступное пространство.  (Прочитано 3972 раз)
Sancho_s_rancho
Гость
« : Январь 10, 2009, 18:18 »

Задача: Развернуть QScrollArea на все доступное место родительского виджета. На сколько я понимаю setSizePolicy(QSizePolicy::Ignored,QSizePolicy::Ignored) должно это делать.

Конструктор родительского виджета:
Код:
Wid::Wid()
{
   childWidget = new QWidget();
   scroll = new QScrollArea(this);
   scroll->setSizePolicy(QSizePolicy::Ignored,QSizePolicy::Ignored);
   scroll->setWidget(childWidget);
}

метод, меняющий размер виджета, находящего в QScrollArea

Код:
   childWidget->resize(600,600);
   qDebug() << this->size();
   qDebug() << scroll->size();
   qDebug() << childWidget->size();

результат:
QSize(633, 951)
QSize(4, 4)
QSize(600, 600)

Что делаю не так? Почему область прокрутки не занимает всю доступную площадь родительского виджета?
Записан
break
Гипер активный житель
*****
Offline Offline

Сообщений: 846


Просмотр профиля
« Ответ #1 : Январь 10, 2009, 18:34 »

У меня работало так:

Код:
	QScrollArea * scrollArea = new QScrollArea;
scrollArea->setWidgetResizable ( true );
scrollArea->setWidget ( ui.twTC_Props );
ui.vboxLayout->addWidget ( scrollArea );
Записан
Sancho_s_rancho
Гость
« Ответ #2 : Январь 10, 2009, 18:58 »

У меня работало так:

Код:
	QScrollArea * scrollArea = new QScrollArea;
scrollArea->setWidgetResizable ( true );
scrollArea->setWidget ( ui.twTC_Props );
ui.vboxLayout->addWidget ( scrollArea );

У меня с лайаутом тоже заработало, но
1) На мой взгляд это не совсем очевидно
2)Лишняя сущность этот лайаут. Для одного-то объекта.

Хотя может мне просто не понятна идеология кутей...
Записан
Dendy
Гость
« Ответ #3 : Январь 10, 2009, 19:09 »

Один обьект уже может достаточно сложно размещаться на родителе. С максимальными/минимальными размерами, отступами от краёв и так далее. У кют достаточно чёткая идеология: автоматическое размещение делается через абстрактный интерфейс QLayout, неважно насколько простым кажется это размещение. А лишняя сущность - это если бы они стали добавлять бесполезные методы на все случаи жизни типа QWidget::setAutoMaximizeSelfOnParent().
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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