Seite 1 von 1

QScrollArea Verhalten

Verfasst: 19. Februar 2010 21:15
von axi0m
Guten Abend zusammen,
Ich habe aktuell ein Problem mit einer QScrollarea.
Was ich möchte:
Eine QScrollArea in der ich Customwidgets in einem QVBoxLayout übereinander "stacke". Die Widgets in der ScrollArea sollen sich von den horizontalen Ausdehnungen an der Area bzw. deren Parentwidget orientieren, also nicht scrollbar werden, sondern einfach die vom Scrollareaviewport angezeigt Breite einnehmen. In der Vertikalen sollen sie fixe Größen haben (was auch klappt) und je mehr dazu kommen, soll das Ganze vertikal scrollbar werden wenn der Platz nicht ausreicht (klappt auch).
Was ich tue:
In meinem "globalen" Widget lege ich eine QScrollArea an, generiere ein Dummy Widget welches nur als Container für die custom Widgets fungiert, dem Container gebe ich ein QVBoxLayout. In das Layout werden dynamisch Customwidgets gepackt.
Was passiert:
Die Customwidgets nehmen sich die maximale Breite (Sind abgeleitete QGraphicsscenes) und dafür werden dann Scrollbars angelegt.
Frage:
Wie gebe ich den Customwidgets mit auf den Weg das die horizontale Ausdehnung sich an dem Viewport der ScrollArea orientieren soll?

Verfasst: 20. Februar 2010 19:38
von axi0m
Ich habe nun einen sehr unschönen Workaround eingeführt:
In der Klasse die die Scrollarea erzeugt habe ich selbige nun als member liegen. Von der Klasse habe ich das resize Event überschrieben und emitted dort ein signal welches die aktuelle Breite von der Scrollarea an die custom widgets verschickt. Diese stellen sich dann per setFixedSize in einem Slot auf eine etwas kleinere Breite als die ScrollArea ein. Schön ist anders, aber funktioniert wenigstens erstmal. Vielleicht hilft das einer anderen, von Scrollareas geplagten, Natur. Für bessere Vorschläge bin ich aber nach wie vor noch zu haben :wink: