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);

回答(2)

2 years ago

我想分享我找到的问题的答案:答案是添加2个具有2个布局的分组框,并将scrollarea作为窗口小部件添加到第二个布局 . 代码将是:

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 );

2 years ago

我认为“scrollArea-> setWidgetResizable(true);”做了诀窍,而不是双重组合