0

QGridLayoutそのため、ウィジェットの 2 つの列 (ラベルとコンボボックス) を持つダイアログで構成されるダイアログがあります。コンボボックスの選択によっては、一部の行が非表示になる場合があります。

self.layout().setSizeConstraint(QLayout.SetFixedSize)コンボボックスを表示/非表示にするときにダイアログを呼び出すと、それに応じてダイアログのサイズが変更されることがわかりました。

しかし、レイアウトがまだ空の行の垂直方向の間隔を表示しているため、ダイアログのあちこちにスペースが多すぎることに気付きました。

どうすればこれを取り除くことができますか? レイアウトのサイズを変更して、ウィジェットが表示されている行の垂直方向の間隔のみを表示する方法はありますか?

4

2 に答える 2

1

私は解決策を見つけたと思います。QVBoxLayout代わりに使用すると、ウィジェットが非表示のときに、QGridLayoutウィジェットその垂直方向の間隔が消えます。

于 2012-11-16T06:43:25.283 に答える
0

QLayout::takeAt ( int index )可視性が に設定されたら、アイテムを取り出すためにを使用する必要がある場合がありますfalse&QLayout::addItem ( QLayoutItem * item )レイアウトに戻す必要があるときに使用します。

アイテムが削除されると、他のアイテムの番号が付け直されることに注意してください。したがって、それに応じて何をするかを計画する必要があります。ドキュメントを参照してください。

于 2012-11-16T06:33:22.763 に答える