2012-03-02 16 views
11
------------ ------ 
|   | | 2 | 
|   | | | 
|  1 | ------ 
|   | ------ 
|   | | 3 | 
------------ ------ 

如何安排上面的QGridLayout如何安排如圖所示的QGridLayout中的項目?

我想:

QGridLayout *layout = new QGridLayout(); 
centralWidget->setLayout (layout); 

layout->addWidget (objOne, 0, 0); 
layout->addWidget (objTwo, 0, 1); 
layout->addWidget (objThree, 1, 1); 

,但失敗了。

回答

19

檢查addWidget文檔。但是,您可以提供rowSpancolumnSpan

QGridLayout *layout = new QGridLayout(); 
centralWidget->setLayout (layout); 

layout->addWidget (objOne, 0, 0, -1, 1); 
layout->addWidget (objTwo, 0, 1, 1, 1); 
layout->addWidget (objThree, 1, 1, 1, 1); 

請注意,這是很容易創建使用QtDesigner所需的佈局。檢查this Qt documentation page瞭解更多詳情

14

是否由於某種原因使用QGridLayout強制使用?對於這樣的簡單佈局,我發現使用一個QHBoxLayout和一個QVBoxLayout的組合更容易。

QVBoxLayout* vlayout = new QVBoxLayout(); 
vlayout->addWidget(objTwo); 
vlayout->addWidget(objThree); 

QHBoxLayout* hlayout = new QHBoxLayout(); 
hlayout->addWidget(objOne); 
hlayout->addLayout(vlayout); 
相關問題