Информация об изменениях

Сообщение Re[3]: QScrollArea от 14.06.2019 5:06

Изменено 14.06.2019 11:20 Igore

Re[3]: QScrollArea
Здравствуйте, Marty, Вы писали:

I>>А может лучше в дизайнере все сделать, там все видно будет.


M>А в дизайнере — я потыкал, вроде на форму положил layout, по идее ожидал, что он на всю форму растянется, покажет размеры контролируемой им области, а он небольшим прямоугольником остался. Я так и не понял, будут ли автоматом на него виджеты класться, или надо где-то что-то будет пошвелить. Да и примеры все кодом написаны, так что так показалось проще. Потом может ещё попробую


Когда ты в дизайнере помещяешь layout на виджет, это тоже самое что ты виджет помещаешь на виджет, а тебе нужен widget->setLayout чтобы child занимал всю облость parent-a, для этого в дизайнере кинь виджет(child) на виджет(parent), после этого кликни на parent и в меню или иконками установи parent-y нужный Layout.

Програмно это будет выглядеть примерно так:
QWidget* parent = new QWidget();
QVBoxLayout* verticalLayout = new QVBoxLayout(parent);
/*
QVBoxLayout* verticalLayout = new QVBoxLayout();
parent->setLayout( verticalLayout );
*/
QLabel* child = new QLabel( "test" );
verticalLayout->addWidget( child );//parent->layout()->addWidget(child);
Re[3]: QScrollArea
Здравствуйте, Marty, Вы писали:

I>>А может лучше в дизайнере все сделать, там все видно будет.


M>А в дизайнере — я потыкал, вроде на форму положил layout, по идее ожидал, что он на всю форму растянется, покажет размеры контролируемой им области, а он небольшим прямоугольником остался. Я так и не понял, будут ли автоматом на него виджеты класться, или надо где-то что-то будет пошвелить. Да и примеры все кодом написаны, так что так показалось проще. Потом может ещё попробую


Когда ты в дизайнере помещяешь layout на виджет, это тоже самое что ты виджет помещаешь на виджет, а тебе нужен widget->setLayout чтобы child занимал всю облость parent-a, для этого в дизайнере кинь виджет(child) на виджет(parent), после этого кликни на parent и в меню или иконками установи parent-y нужный Layout.

Програмно это будет выглядеть примерно так:
QWidget* parent = new QWidget();
QVBoxLayout* verticalLayout = new QVBoxLayout(parent);
/*
QVBoxLayout* verticalLayout = new QVBoxLayout();
parent->setLayout( verticalLayout );
*/
QLabel* child = new QLabel( "test" );
verticalLayout->addWidget( child );//parent->layout()->addWidget(child);


M>А сплиттер вроде заместо Q*Layout работае, не?

Да, но сам QSplitter тоже должен быть помещен в Layout parent-a иначе, QSplitter не изменяется, и его элементы тоже не изменяются.