Qt: автоматическое добавление полосы прокрутки в QGroupbox

Я хочу автоматически добавить полосу прокрутки в групповой блок меток при изменении размера диалогового окна, в котором есть этот групповой блок (уменьшить его), чтобы сохранить тот же вид содержимого группового блока и просматривать его путем прокрутки, когда это диалоговое окно маленькое.

QGroupBox* GroupBox = new QGroupBox;
QVBoxLayout *Layout = new QVBoxLayout;   
Layout->addWidget(Label1);
Layout->addWidget(Label2);
Layout->addWidget(Label3);
Layout->addWidget(Label4);
GroupBox ->setLayout(Layout);

Я пробовал следующее, но это не работает.

QScrollArea* scrollArea = new QScrollArea(this);
scrollArea->setWidget(GroupBox);

person Khaled    schedule 27.04.2017    source источник
comment
Вы пытались установить макет непосредственно в QScrollArea вместо QGroupBox?   -  person basslo    schedule 27.04.2017


Ответы (2)


Я хочу поделиться ответом на свой вопрос, который я нашел: ответ состоит в том, чтобы добавить 2 групповых поля с 2 макетами и добавить область прокрутки в качестве виджета во второй макет. Код будет:

QGroupBox* GroupBoxIn = new QGroupBox;
QVBoxLayout *LayoutIn = new QVBoxLayout;  
QGroupBox *GroupBoxOut = new QGroupBox;   
QVBoxLayout *LayoutOut = new QVBoxLayout;  
QScrollArea* scrollArea = new QScrollArea();

LayoutIn ->addWidget(Label1);
LayoutIn ->addWidget(Label2);
LayoutIn ->addWidget(Label3);
LayoutIn ->addWidget(Label4);

GroupBoxIn ->setLayout(LayoutIn ); 
scrollArea->setWidget(GroupBoxIn );  
scrollArea->setWidgetResizable( true );  
LayoutOut ->addWidget(scrollArea);      
GroupBoxOut ->setLayout(LayoutOut ); 
person Khaled    schedule 02.05.2017

Я думаю, что "scrollArea->setWidgetResizable(true);" сделал свое дело, а не двойной групповой ящик

person Komgcn    schedule 04.08.2018