2017-10-23 13 views
0

私はQGridLayout::addWidget()を使っていくつかのウィジェットを動的に追加するQGridLayoutを持っています。私はこれらのウィジェットは全く同じだから問題はない。サイズ変更時にQGridLayoutに項目を配置するにはどうすればいいですか?

ただし、グリッドレイアウトを含むウィジェットのサイズを変更する際のアラインメントの処理方法を知りたいと思います。私のウィジェットが十分に広い場合、例えば、私は、単一の行に5つのウィジェットを合うことができる:私はウィジェットの幅を減らす場合

------------------------------------------------ 
| ------- ------- ------- ------- ------- | 
| | 1 | | 2 | | 3 | | 4 | | 5 | | 
| ------- ------- ------- ------- ------- | 
|            | 

しかし、私は手段を、目に見えるすべてのウィジェットを持っていることをしたいのですが新しい行を作成する:

-------------------- 
| ------- ------- | 
| | 1 | | 2 | | 
| ------- ------- | 
| ------- ------- | 
| | 3 | | 4 | | 
| ------- ------- | 
| -------   | 
| | 5 |   | 
| -------   | 
|     | 

私はそれがresizeイベントを介して行うことができると思いますが、どのようにするのですか?

+0

QGridLayoutは、そのポリシーを実装していません、この動作を作成する場合は、独自のレイアウトを作成する必要があります。次のリンクは、[カスタムレイアウトマネージャの作成方法](http://doc.qt.io/qt-5/layout.html)です。 #how-to-write-a-custom-layout-manager)、あなたが望むようなレイアウトの例を挙げてください:[Flow Layout Example](http://doc.qt.io/qt-5/qtwidgets -layouts-flowlayout-example.html) – eyllanesc

+0

@eyllanesc Ah、nea t。それがQGridLayoutで実行できない理由はありますか?あなたが答えとしてあなたのコメントを載せたいなら、私はそれを受け入れます。 – IAmInPLS

+0

私はすでに回答を投稿しました – eyllanesc

答えて

1

レイアウトは、一連のウィジェットのレイアウトとサイズを管理するために使用されます。 QGridLayoutは、静的グリッド内のウィジェットを処理するためのものです。つまり、アイテムの列と行の位置は、そのタイプの処理を作成できない理由を変更しません。

、それはまた、カスタムレイアウトを作成する方法を教えてくれるので、Qtは、素晴らしいドキュメントがありますHow to Write A Custom Layout Manager

上記のリンクは、あなたが望むものを正確である例を示していますFlow Layout Example

関連する問題