之前有用QScrollArea 设置一个滑动条的窗口,但发现设置了半天没用,发现设置到了QScrollArea 上,而不是里面的QWidget上。
上述红框不放呢画错的地方原本写错成 model_stack_scrollwidget,这个是QScrollArea ,这也归咎于自己没有处理好命名导致发生的这种问题。
也可以去直接QTdemo
实际看一下效果代码图即可:
//创建一个子窗口,这个子窗口交给滚动区域
QWidget* pSubWidget = new QWidget();
//在窗口(100,100)位置显示150*150大小的滚动区域
QScrollArea* pScrollArea = new QScrollArea(this);
pScrollArea->setFixedSize(150, 150);
pScrollArea->setWidgetResizable(true);
pScrollArea->setWidget(pSubWidget);
pScrollArea->move(QPoint(100, 100));
//给子窗口设置一个垂直排版对象,动态添加按钮进去,子窗口会自动调整大小
QVBoxLayout* pSubLayout = new QVBoxLayout(this);
pSubWidget->setLayout(pSubLayout);
for (auto i = 0; i < 10; ++i)
{
pSubLayout->addWidget(new QPushButton(QString("test%1").arg(i), this));
}