web-dev-qa-db-ja.com

図のように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);

しかし失敗しました。

17
Aquarius_Girl

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を使用して目的のレイアウトを作成する方がはるかに簡単であることに注意してください。詳細については、 このQtドキュメントページ を確認してください。

25
pnezis

何らかの理由でQGridLayoutを使用することはどういうわけか必須ですか?このような単純なレイアウトの場合、1つのQHBoxLayoutと1つのQVBoxLayoutを組み合わせて使用​​する方が簡単です。

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

QHBoxLayout* hlayout = new QHBoxLayout();
hlayout->addWidget(objOne);
hlayout->addLayout(vlayout);
20
Chris Browet