wie QWidget Größe auf Inhalt ausrichten?
Verfasst: 20. November 2013 11:19
Hallo liebe Community,
ich bekomme es einfach nicht hin, dass sich mein Widget auf den
darin enthaltenen Inhalt größenmäßig anpasst.
Folgende Struktur ist gegeben:
1. QWidget (Hauptanwendung) nutzt ein QVBoxLayout ("rootLayout")
1.1 QHBoxLayout ("contextLayout")
1.1.1 QWidget nutzt ein QVBoxLayout (Button-Menu)
1.1.1.1 QPushButton's
1.1.2 QWidget (View-Window) nutzt ein QVBoxLayout
1.1.2.1 QWidget (Header-Bar)
1.1.2.x ...
1.2 QWidget (Status-Bar)
1.2.x ...
Veranschaulichung:

Problem: Es bildet sich ungenutzter (unnötiger) Platz zwischen dem
horizontalen Layout (aus Punkt 1.1) u. der Status-Bar (aus Punkt 1.2)!
=> Weil die Höhe der Applikation nicht verändert wird.
Bisherige Einstellungen:
Hoffe jemand hat eine Lösung.
Bedanke mich für sinnvolle Antworten schon mal im Vorraus^^
ich bekomme es einfach nicht hin, dass sich mein Widget auf den
darin enthaltenen Inhalt größenmäßig anpasst.
Folgende Struktur ist gegeben:
1. QWidget (Hauptanwendung) nutzt ein QVBoxLayout ("rootLayout")
1.1 QHBoxLayout ("contextLayout")
1.1.1 QWidget nutzt ein QVBoxLayout (Button-Menu)
1.1.1.1 QPushButton's
1.1.2 QWidget (View-Window) nutzt ein QVBoxLayout
1.1.2.1 QWidget (Header-Bar)
1.1.2.x ...
1.2 QWidget (Status-Bar)
1.2.x ...
Veranschaulichung:

Problem: Es bildet sich ungenutzter (unnötiger) Platz zwischen dem
horizontalen Layout (aus Punkt 1.1) u. der Status-Bar (aus Punkt 1.2)!
=> Weil die Höhe der Applikation nicht verändert wird.
Bisherige Einstellungen:
Code: Alles auswählen
// FÜR DIE HAUPTANWENDUNG
rootLayout.setParent(this);
rootLayout.setMargin(0);
rootLayout.setSpacing(0);
rootLayout.addLayout(&contextLayout);
rootLayout.addWidget(&bottomBar, 0, Qt::AlignBottom);
setLayout(&rootLayout);
// FÜR DAS CONTEXT LAYOUT
contextLayout.setSpacing(0);
contextLayout.addWidget(&buttonMenu, 0, Qt::AlignLeft);
contextLayout.addWidget(&view);
// FÜR DIE STATUS-BAR
bottomBar.setParent(this);
bottomBar.setFixedHeight(20);
// FÜR DAS BUTTON-MENÜ LAYOUT
menuLayout.setMargin(0);
menuLayout.setSpacing(0);
// initialisiere Buttons u. füge sie dem Layout hinzu
// ...
// FÜR DAS BUTTON-MENÜ
buttonMenu.setParent(this);
buttonMenu.setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Minimum);
buttonMenu.setLayout(&menuLayout);
// FÜR DAS VIEW-WINDOW LAYOUT
viewLayout.setMargin(0);
// viewLayout.setSpacing(0);
viewLayout.addWidget(&header, 0, Qt::AlignTop);
// FÜR DAS VIEW-WINDOW
view.setParent(this);
view.setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Minimum);
view.setLayout(&viewLayout);
// FÜR DEN HEADER
header.setParent(&view);
// ... weitere Einstellungen für den Header
Hoffe jemand hat eine Lösung.
Bedanke mich für sinnvolle Antworten schon mal im Vorraus^^