Как упорядочить элементы в QGridLayout, как показано?
------------ ------
| | | 2 |
| | | |
| 1 | ------
| | ------
| | | 3 |
------------ ------
Как организовать QGridLayout
, как указано выше?
Я пробовал:
QGridLayout *layout = new QGridLayout();
centralWidget->setLayout (layout);
layout->addWidget (objOne, 0, 0);
layout->addWidget (objTwo, 0, 1);
layout->addWidget (objThree, 1, 1);
но не удалось.
Ответы
Ответ 1
Просмотрите документацию addWidget
. Вы можете предоставить rowSpan
и 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);
Обратите внимание, что гораздо проще создать желаемый макет с помощью QtDesigner. Для более подробной информации эту страницу Qt
Ответ 2
Как-то обязательно для вас использовать QGridLayout по какой-то причине? Для простых макетов, подобных этому, мне легче использовать комбинацию из одного QHBoxLayout и одного QVBoxLayout.
QVBoxLayout* vlayout = new QVBoxLayout();
vlayout->addWidget(objTwo);
vlayout->addWidget(objThree);
QHBoxLayout* hlayout = new QHBoxLayout();
hlayout->addWidget(objOne);
hlayout->addLayout(vlayout);