再做Qt项目中,一个UI界面需要用到QScrollArea,说白了就是这个界面需要滚动条,但是,当我把QScrollArea里面的的控件都布局完成,当然控件的整体高度要大与QScrollArea,但是运行时将多出来的部分直接覆盖,而且还没有滚东条,最后查看UI设计师发现,再UI设计师拖出来一个QScrollArea会自动生成一个QWidget(scrollAreaWidgetContents),但是再UI设计师中不能设置自动widget的大小,只要再代码中设置的他的大小大于QScrollArea就可以完成显示滚动条功能。
利用该接口设置大小:
setGeometry(x,y, ui.scrollarea->width(), ui.scrollarea->height() + 任意大于1的数);
如果再代码设置:
QVBoxLayout *scrollLayout = new QVBoxLayout;
scrollLayout->addWidget(imagingShow); //向布局加入Widget
scrollLayout->addWidget(arc_panel); //向布局加入Widget
scrollLayout->addWidget(nerve_panel); //向布局加入Widget
scrollLayout->addWidget(implant_panel); //向布局加入Widget
scrollLayout->setMargin(0);
scrollLayout->setSpacing(0);
QWidget *pWidget = new QWidget(); //创建一个widget
pWidget->setLayout(scrollLayout); //将布局放进去
QScrollArea *scrollArea = new QScrollArea(this); //创建一个scrollArea
scrollArea->setWidget(pWidget);