所以我一直试图使用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);
有没有人有想法,我做错了什么?
答案 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);