Qt:QGridLayout拒绝添加小部件

时间:2014-05-15 14:45:14

标签: qt

所以我一直试图使用QGridLayout一段时间,它一直给我错误: "错误:没有匹配函数来调用' QLayout :: addWidget(QScrollArea *,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);

有没有人有想法,我做错了什么?

1 个答案:

答案 0 :(得分:4)

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);