QScrollArea и компоновка виджетов

387
27 декабря 2016, 00:40

Есть QScrollArea и на нее нужно положить несколько виджетов.
Если сразу положить на нее layout, тогда все адекватно отображается, но ничего не скроллится(не появляются скролл бары, а виджеты просто уезжают за границы экрана).
Код: QVBoxLayout* mainLayout = new QVBoxLayout(this); QScrollArea* scroll = new QScrollArea; mainLayout->addWidget(scroll);

QVBoxLayout* l = new QVBoxLayout;
scroll->setLayout(l);
QLabel* lbl = new QLabel;
lbl->setAlignment(Qt::AlignRight);
lbl->setText("Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diem nonummy nibh euismod tincidunt ut lacreet dolore magna aliguam erat volutpat.");
l->addWidget(lbl);
QLabel* lbl1 = new QLabel;
lbl1->setAlignment(Qt::AlignLeft);
lbl1->setText("Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diem nonummy nibh euismod tincidunt ut lacreet dolore magna aliguam erat volutpat."); 
l->addWidget(lbl1);

}

А если добавить туда сначала виджет, в который засунуть layout, на который уже класть виджеты, тогда все скроллится, но виджеты не отображаются или отображаются криво(обрезанными).

Код:

QVBoxLayout* mainLayout = new QVBoxLayout(this);
scroll = new QScrollArea;
mainLayout->addWidget(scroll);
QWidget* ScrollAreaWidgetContents = new QWidget;
QVBoxLayout* ScrollLayout = new QVBoxLayout;
ScrollAreaWidgetContents->setLayout(ScrollLayout);
scroll->setWidget(ScrollAreaWidgetContents);
QLabel* lbl = new QLabel;
lbl->setAlignment(Qt::AlignRight);
lbl->setText("Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diem nonummy nibh euismod tincidunt ut lacreet dolore magna aliguam erat volutpat.");
ScrollLayout->addWidget(lbl);
QLabel* lbl1 = new QLabel;
lbl1->setAlignment(Qt::AlignLeft);
lbl1->setText("Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diem nonummy nibh euismod tincidunt ut lacreet dolore magna aliguam erat volutpat.");
ScrollLayout->addWidget(lbl1);

Как решить данную проблему?

READ ALSO
Удалить все слова с удвоенными буквами

Удалить все слова с удвоенными буквами

Нужно использовать strtok, я не могу понять как мне проверить каждое слово из введённого массива символов, допустим:

401
Таблица синуса и косинуса

Таблица синуса и косинуса

Ради оптимизации решил сделать табличку в которой будут лежать синусы и косинусыРисует почти как надо

315
Объектный полиморфизм

Объектный полиморфизм

Есть QTabWidget tabsВ нем лежат виджеты вкладок, в каждой вкладке есть layout, в этом layout'e QScrollArea со своим layout'om

339
Несколько классов в одном файле

Несколько классов в одном файле

Является ли дурным тоном описывать и реализовывать несколько классов в одном файле-заголовочнике и одномсрр-файле соответственно? Например,...

692