QScrollArea-具有许多子控件的小部件的滚动条



所以,我在QScrollArea上遇到了一些问题。

我想把一个有很多孩子的小部件放在QScrollArea中,但我没有得到任何滚动条。

这是代码:

QDialog *dialog = new QDialog();
QVBoxLayout *dialoglayout = new QVBoxLayout( dialog );
QScrollArea *area = new QScrollArea();
dialoglayout->setMargin( 0 );
dialoglayout->addWidget( area );
area->setAlignment( Qt::AlignCenter );
area->setAlignment( Qt::AlignTop );
area->setWidgetResizable( true );
// mainwidget has a lot of children
QWidget *mainwidget = randomclass.getWidget();
QVBoxLayout *mainwidgetlayout = new QVBoxLayout( mainwidget );
dialog->setWindowFlags( Qt::Window );
area->setWidget( mainwidget );
dialog->showMaximized();

如果主窗口小部件大于滚动区域,那么内容就会溢出。

有人能帮我吗?提前谢谢。

有些小部件不报告要滚动的区域,这会导致与滚动区域混淆。对于要根据内容调整的QScrollarea对象:

myWidget->setMinimumSize(myWidget->sizeHint());  // assume the min size 
scrollArea->setWidget( myWidget );               // use that widget in scroll area

根据内容的不同,可能还需要启用特定的滚动条:

scrollArea->setVerticalScrollBarPolicy(Qt::ScrollBarAsNeeded);
scrollArea->setHorizontalScrollBarPolicy(Qt::ScrollBarAsNeeded);

最新更新