Qt:QGridLayout拒绝添加小部件

Qt:QGridLayout拒绝添加小部件,qt,Qt,因此,我尝试使用QGridLayout已有一段时间了,但它一直给我错误: 错误:调用'QLayout::addWidget(qscrolrea*,int,int')时没有匹配的函数。我不知道我做错了什么。以下是导致错误的代码部分: QScrollArea * setScrollArea(QWidget * w) { w->setStyleSheet("background-color:white;"); QScrollArea * scrollArea = new QScr

因此,我尝试使用QGridLayout已有一段时间了,但它一直给我错误: 错误:调用'QLayout::addWidget(qscrolrea*,int,int')时没有匹配的函数。我不知道我做错了什么。以下是导致错误的代码部分:

QScrollArea * setScrollArea(QWidget * w)
{
    w->setStyleSheet("background-color:white;");
    QScrollArea * scrollArea = new QScrollArea;
    scrollArea->setWidgetResizable(true);
    scrollArea->setWidget(w);
    return scrollArea;
}                                                           ^
.
.
.
shower = new QWidget;
shower->setLayout(new QGridLayout);
shower->layout()->addWidget(setScrollArea(upWindow), 0, 0);
shower->layout()->addWidget(setScrollArea(downWindow), 1, 0);
有人知道我做错了什么吗?

QWidget::layout()
返回一个简单的
QLayout
,它没有函数
addWidget(QWidget*,int,int)
。 要使用
QGridLayout
功能,请执行以下操作:

shower = new QWidget;
QGridLayout * layout = new QGridLayout;
layout->addWidget(setScrollArea(upWindow), 0, 0);
layout->addWidget(setScrollArea(downWindow), 1, 0);
shower->setLayout(layout);
QWidget::layout()
返回一个简单的
QLayout
,它没有函数
addWidget(QWidget*,int,int)
。 要使用
QGridLayout
功能,请执行以下操作:

shower = new QWidget;
QGridLayout * layout = new QGridLayout;
layout->addWidget(setScrollArea(upWindow), 0, 0);
layout->addWidget(setScrollArea(downWindow), 1, 0);
shower->setLayout(layout);