------------ ------
| | | 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);
但失败了。
答案 0 :(得分:22)
查看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创建所需的布局要容易得多。查看this Qt
documentation page了解详情
答案 1 :(得分:18)
出于某种原因,您是否必须使用QGridLayout?对于像这样的简单布局,我发现使用一个QHBoxLayout和一个QVBoxLayout的组合更容易。
QVBoxLayout* vlayout = new QVBoxLayout();
vlayout->addWidget(objTwo);
vlayout->addWidget(objThree);
QHBoxLayout* hlayout = new QHBoxLayout();
hlayout->addWidget(objOne);
hlayout->addLayout(vlayout);