2016-08-27 14 views
0

グリッド内にウィジェットが配置されたQMainWindowがあります。それらは、QGroupBox内に配置されたウィジェットを除いて、ウィンドウのサイズが予想どおりに変更されたときに比例してサイズが変更されます。 QGroupBox自体のサイズは変更されますが、内部のウィジェットは同じ場所にとどまります。 QGroupBoxにレイアウトを適用すると、ウィジェットは元の位置を失います。 PyQt4で.uiファイルを使用していることに注意してください。ファイルhereを入手できます。なぜQGroupBoxウィジェットは残りのウィンドウで動的にサイズ変更されませんか?

そして、これは何が起こるかです:

enter image description here

enter image description here

+3

グループボックス内のウィジェットはレイアウト内にある必要があります。それらがレイアウトにない場合、そのサイズは固定されています(レイアウトはサイズ、レイアウト、サイズ変更を管理しません) – Fabio

+0

「ウィジェットが元の位置を失う」とはどういう意味ですか? (PS:他のサイトのコードにリンクしないでください。質問自体に入れてください)。 – ekhumoro

+0

QGroupBox上にレイアウトを適用すると、内部のすべてのウィジェットがレイアウトの種類に合わせて調整されます。たとえそれがグリッドレイアウトであっても、スクリーンショットで見た場所にとどまらず、全く異なる位置を占めます。 – R01k

答えて

2

Qt documentation on QGroupBoxから:

QGroupBoxが自動的 しばしばQCheckBoxesをしている子ウィジェットを(レイアウトしていませんか、 QRadioButtonsはどんなウィジェットでもかまいません)。

QGroupBoxのレイアウト(任意QWidget基づいてオブジェクトの設定アップレイアウトと同じである、例えばQFrameように、他のオブジェクトを格納することを意味)の設定方法に示す例があります。

レイアウトを作成し、QGroupBox::setLayoutを呼び出してレイアウトにウィジェットを追加する必要があります。 QtCreatorを使用する場合は、QGroupBoxを右クリックし、コンテキストメニューから使用するレイアウトを選択します。

+0

ありがとうございます。 私はちょうどQGroupBoxを取り除き、それが正しくなるまでレイアウトで遊んだ。 – R01k

関連する問題