2017-05-12 5 views
1

entfernt habe ich diese QDialog mit einer verschachtelten QGroupBox, die in dem Dialog Konstruktor entfernt werden (durch verschiedene QDialog Methoden, wie hide(), setVisible() und). Leider, wenn ich es entferne, bleibt der Dialog die gleiche Größe. Das lustige daran ist, dass die Haupt QGroupBox (die mit dem verschachtelten QGroupBox) schrumpft, aber der Rest des Fensters nicht. Folglich gibt es große Räume um das Haupt QGroupBox.Kompaktierung QDialog wenn Elemente

Ich habe versucht:

  • Aufruf QDialog::resize() im Ctor und durch QMetaObject::invokeMethod(), die Höhe von 30 (der Größe der entfernten QGroupBox) zu reduzieren, aber das macht nichts.
  • Aufruf QDialog::adjustSize() (auch in der ctor und durch QMetaObject::invokeMethod()), aber das erhöht nur beide Dimensionen (wie verrückt groß!).
  • Ändern der "Vertical Policy" QDialog von "Preferred" (was auch immer das bedeutet) auf "Minimum", aber das tut nichts.

Die QDialog hat ein Rasterlayout.

Edit: Ich habe festgestellt, dass es diese verticalSpacers über und unter der Haupt QGroupBox gibt. Was auch immer ich ihre Richtlinien und Größenhinweise mache, macht keinen Unterschied - sie machen immer noch das ganze Fenster wirklich groß, wenn ich adjustSize() rufe. Entfernen sie macht Marken adjustSize() bekommen die Höhe richtig, aber die Breite ist immer noch viel zu groß. Entfernen sie und ruft nicht adjustSize() dann bewirkt, dass die wichtigsten QGroupBox bleiben die gleiche Größe, und nicht schrumpfen aufgrund der Entfernung von einigen seiner Kinder.

Ich benutze Qt 4.8 auf Ubuntu 16.04.

Antwort

1

Sie können QLayout::setSizeConstraint auf dem Dialog-Layout verwenden, um es zu erzwingen automatisch mit entweder QLayout::SetFixedSize oder QLayout::SetMinAndMaxSize als Parameter je nach ihrem Inhalt, um die Größe (letztere kann der Benutzer den Dialog Größe ändern).

Mit SetMinAndMaxSize, können Sie auch diese Eigenschaft auf der Haupt QGroupBox Layout ändern müssen, oder zumindest seine vertikale Layout Politik auf Maximum oder Fixed.

Verwandte Themen