2011-01-11 9 views
1

私は、QVBoxLayoutに複数のグループボックスを含む1つのグループボックスのみを含むウィンドウを持っています(それらのコンテンツは固定サイズではありません)。これらの内部グループボックスはチェック可能で、チェックボックスをオフにするとグループボックスが折りたたまれます(折りたたまれたグループボックスの高さは最大30px、isFlat == true)。 内側のグループボックスの1つが折りたたまれていると、外側のグループボックスとウィンドウがそれに応じて縮小する必要があります(現在は折りたたまれていない他のグループボックスが大きくなります)。他のウィジェットを増やす代わりに、親ウィンドウを縮小する

alt text 私はQWidget::setSizePolicyと異なるレイアウト/ウィジェットのQLayout::setSizeConstraintの周りいじるましたが、まだ満足のいく結果に来てhaventは:しかし、ユーザーは、まだグループボックスがそれに応じて成長させなければならないウィンドウを、サイズを変更することができるはず..
これを達成する最も良い方法は何ですか?独自のサイズヒント関数を実装せずにこれを行うことはできますか?

+0

私はユーザビリティの専門家ではありませんが、この考えは悪い考えです。個人的に、私は自動的にサイズ変更するウィンドウが好きではありません。 – Job

+0

@ Job:内側のグループボックスの1つをオフにした場合にのみ実行されます。グループボックスのサイズを自動的に変更するか、自動的にサイズを変更するかの選択肢があります。内側のグループボックスのサイズ変更は私の場合は醜いので、ユーザーが他のグループボックスのチェックを外すだけで...ユーザーは自分自身でウィンドウのサイズを変更しますが、それを避けることはできませんが、それはちょっとうまくいきます。なぜなら、ウィンドウのサイズを変更することは、コンテンツを再配置する必要があることを意味するからです。 – smerlin

答えて

2

私はあなたが、内側QGroupBoxesのサイズを変更した後、親QGroupBox上

adjustSize(); 

を呼び出すことにより、必要と振る舞いを持っているようだおもちゃのケースを作りました。私はこれをスロットにして、便宜のために内側のグループボックスのサイズを変更する同じ信号に接続することができました。

+0

hmmm 'adjustSize()'を呼び出すと、ウィンドウに合わせてストレッチ自体が長くなり、ウィンドウはグループボックスに収まるように縮小されません。 – smerlin

+0

あなたのサイズの設定が、私が見ていた振る舞いを上書きしていると思います。もっとコードを共有できますか? – dabhaid

+0

クローズドソースプロジェクト以来、私はコードを残念ながらリリースしていませんが、私たちが使用しているグループボックスクラスの機能がhttp://jpnurmi.kapsi.fiと非常によく似ているはずです/docs/classQxtGroupBox.html(内部グループボックスとしてこれを使用してください)。また、展開可能な内部グループボックスにコンテンツがあることを確認してください( '(widget.sizePolicy()| QSizePolicy :: GrowFlag)== true') – smerlin

関連する問題