1

3列のQGridLayoutを含むダイアログがあります。行の1つには、各列にQComboBox、QPushbutton、および別のQPushButtonがそれぞれ含まれています。各列を同じサイズにし、同じスケールにする必要があります。

残念ながら、QComboBoxは、サイズのヒントを大きすぎて、最も幅の広いアイテムを含めるのに十分な大きさに設定しています。「DoNotAdjustAndStopBeingAnnoying」などと呼ばれるSizeAdjustPolicyがないようです。そのため、この調整を強制的に停止するように設定できるものがあるかどうかはわかりません。

これはコードでかなり簡単に実行できることはわかっていますが、この種の詳細を.uiファイルに保持したいと思います。コードを書かずにQt4.8でこれを行う方法はありますか?

4

2 に答える 2

3

sizePolicyコンボボックスのの水平成分をに設定することで、これを解決することができましたIgnored。その結果、コンボボックスはボタンよりもさらに縮小できるようになったので、3つのコントロールすべてを使用Ignoredして水平に設定するように変更しました。minimumSize現在、それらはすべて同じサイズで始まり、レイアウトに合わせて上下に同じサイズになり、適切な最小値で停止します。

于 2012-02-02T00:21:42.920 に答える
1

uiファイルでオーバーライドしないでください。UIに直接アクセスできるオブジェクトを作成する場合は、Qt Designer、プロパティパネル、またはコードのいずれかでオーバーライドします。

編集:とにかくそれは役に立つことができます

QLayout :: SizeConstraintQWidget :: minimumSizeHintQWidget :: minimumSizeの間に階層があり、ドキュメントで見つけることができます。

  • QWidget::minimumSizeデフォルトでは設定されていません。あるとき、それは勝ちます QWidget::minimumSizeHint
  • QWidget::minimumSizeHintウィジェットがレイアウトにない場合(つまり、マウスで0にサイズ変更できる場合)は無効です。それ以外の場合は、レイアウトで定義されているウィジェットを使用します。
  • QLayout::SizeConstraint*直接*管理するウィジェットのデフォルトのレイアウト動作を保持します。Aレイアウト内にレイアウトをネストするとB、に追加されたすべてのウィジェットAがそのプロパティを使用します。また、ウィジェットが独自のレイアウトWを定義している場合、このレイアウト制約はウィジェットに適用される制約です。BW
于 2012-02-02T00:22:35.917 に答える