QScrollArea没有缩放到窗口

时间:2016-12-03 10:58:11

标签: c++ qt

我尝试使用QScrollArea以便能够在同一个窗口中放置大量小部件。不幸的是,包含QWidget(中央)的QScrollAea没有缩放到窗口的大小,这使得...不像我想要的......我尝试了不同的东西,但我可以& #39;解决它......任何想法?

QWidget *central = new QWidget(this);
QScrollArea *scroll = new QScrollArea(this);
QVBoxLayout *vLayout = new QVBoxLayout(central);

this->setCentralWidget(central);
central->setLayout(vLayout);

//vect is not empty
for (elt t : vect)
{
    vLayout->addWidget(new TweetDisplay(elt, t));
}

//If I remove those three lines, everything is displayed but of course, I can't scroll.
scroll->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOn);
scroll->setWidget(central);
scroll->setWidgetResizable(true);

图片供参考:

Screenshot

1 个答案:

答案 0 :(得分:2)

您应该尝试使用central作为中心窗口小部件,而不是将中央窗口小部件设置为scroll。因此,正确的行将是:

this->setCentralWidget(scroll);

请记住滚动区域使用central作为它已包含的小部件,因此将其设置为中央小部件实际上没有意义。