2014-05-15 29 views
2

所以我一直在嘗試使用QGridLayout一段時間,它不斷給我的錯誤: 「錯誤:沒有匹配函數調用'QLayout :: addWidget(QScrollArea *,int, INT)」。我不知道我在做什麼錯。這裏是代碼的部分似乎是導致錯誤:Qt:QGridLayout拒絕添加小部件

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

有沒有人有一個想法,我做錯了什麼?

回答

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