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

Jak ustawić QGridLayout jak wyżej?Jak rozmieścić elementy w QGridLayout, jak pokazano?

Próbowałem:

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

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

ale nie powiodło się.

Odpowiedz

19

Sprawdź dokumentację addWidget. Można podać rowSpan i columnSpan

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

jednak zauważyć, że o wiele łatwiej jest stworzyć pożądany układ używając QtDesigner. Aby uzyskać więcej informacji, sprawdź numer this Qt documentation page.

14

Czy korzystanie z QGridLayout jest z jakiegoś powodu obowiązkowe? W prostych układach takich jak to, łatwiej jest użyć kombinacji jednego QHBoxLayout i jednego QVBoxLayout.

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

QHBoxLayout* hlayout = new QHBoxLayout(); 
hlayout->addWidget(objOne); 
hlayout->addLayout(vlayout); 
Powiązane problemy