4

ユーザー インターフェイスをデザインするときQWidget、サイズ プロパティに関していつも少し混乱します。size policyとがありgeometryますhintSize

と の関係を知っているだけsize policyですhintSizesize policyは に基づいていsizehintます。しかし、これらのプロパティ間の他の関係はわかりません。

親ウィンドウまたはメインウィンドウのサイズに基づいてサイズを自動的に変更できるウィジェットが必要です。しかし、この目標を達成するために 3 つのプロパティを使用する方法がわかりません。

4

1 に答える 1

4

ジオメトリ:親内のウィジェットの現在の位置とサイズ。たとえば、(10, 20, 50, 70) のジオメトリを持つウィジェットは、幅 50、高さ 70 の親内の位置 (10, 20) に配置されます。

sizeHint: (おそらく "hintSize" と呼ばれるもの) ウィジェットの推奨サイズ。このメソッドをオーバーライドして変更します。

サイズ ポリシー:ウィジェットがそれ自身とは異なる寸法のコンテナー内に配置された場合のウィジェットの応答方法。サイズ ポリシーは、次の組み合わせです。

  • [ QSizePolicy::Maximum] ウィジェットがその下に縮小できるかどうかsizeHint
  • [ QSizePolicy::Minimum] ウィジェットがその上に拡張できるかどうかsizeHint、および
  • [ QSizePolicy::Expanding] 追加の使用可能なスペースを埋めるためにウィジェットを拡張する必要があるかどうか。

ウィジェットには、水平方向と垂直方向の両方のサイズ ポリシーがあります。


それにもかかわらず、特定のルールに基づいて親内のウィジェットのサイズを自動的に変更するレイアウトを探している可能性があります。たとえば、ウィジェットでその親を埋めるには、親のレイアウトを に設定してからQVBoxLayout、子ウィジェットをレイアウトに追加します。親のサイズが変更されると、子のサイズも自動的に調整されます。

于 2013-05-30T00:56:08.800 に答える