2012-09-04 35 views
0

這個問題似乎很簡單,但我不2個hours.I解決它有這種佈局:QGridLayout的addWidget擋住了我的項目

QGridLayout* view = new QGridLayout(this); 
view->setSpacing(15); 
view->addWidget(x0,2,1); 
view->addWidget(x1,1,1); 
view->addWidget(keyboard,2,0); 
view->addWidget(x2,1,0); 
view->addWidget(draw,0,0,0,1); 
resize (650,650); 
this->setLayout(view); 

我需要「畫」(該項目的圖形部分)佔據項目的最高端(第0行,第0列至第1列)。

的問題是,什麼價值,我把在構造函數中:

void QGridLayout :: addWidget (QWidget * widget, int fromRow, fromColumn int, int rowSpan, columnSpan int, Qt :: Alignment alignment = 0) 

所有其他窗口小部件就像封鎖,我的程序運行時,我不能互動。

擁有經典的構造

void QGridLayout :: addWidget (QWidget * widget, int row, int column, Qt :: Alignment alignment = 0) 

沒有問題,但Widget的 「畫」 是不是我想要的(僅1列,而不是2)。

任何人都知道我在哪裏做錯了?

PS:小工具沒有佈局設置(除了一個數字小鍵盤來固定鍵的最小高度)。

回答

0

行跨度是文字,而不是索引像變量。如果你想把2列/行跨度,你必須把值2放在span params中。所以你需要修改這個view->addWidget(draw,0,0,0,1);view->addWidget(draw,0,0,1,2);。 1的行/列範圍將僅包括「從行/列」而不是「從行/列+1」

+0

謝謝卡米爾,解決了! – Nicola