所以,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();
如果mainwidget比scrollarea大,那么内容就会溢出。
任何人都可以帮助我吗? 提前谢谢。
答案 0 :(得分:2)
某些小部件不会报告要滚动的区域,这会导致与滚动区域混淆。对于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);