Seite 1 von 1

[gelöst] Widget dynamisch einer QScrollArea hinzufügen

Verfasst: 7. August 2011 14:42
von BartSimpson
Hallo,
wie der Titel schon sagt, habe ich folgendes vor.
Nachdem der Oberfläche mit setupUi(this); erstellt worden ist,
will ich später einer QScrollArea Widgets hinzufügen.
Zum testen haben ich folgendes geschrieben:

Code: Alles auswählen

QVBoxLayout  *Kasten=new QVBoxLayout();
QProgressBar *Anzeige;
for (int x=0;x<10;x++)
    {
	Anzeige=new QProgressBar(this);	
	Kasten->addWidget(Anzeige);
    }
Fortschritt->setLayout(Kasten);
Fortschritt ist die QScrollArea.
Die Widgets werden zwar gezeichnet, aber total zusammen gequetscht, so groß wie das Fenster ist.
Eigentlich sollten doch dann die Scrollbalken erscheinen statt alles zu quetschen oder?

Ich wünsche euch schon mal einen schönen Sonntag.

Re: Widget dynamisch einer QScrollArea hinzufügen

Verfasst: 7. August 2011 15:20
von franzf
Sollte Fortschritt nicht das viewport-Widget sein?
Um eine Größenanpassung des Widgets zuzulassen, musst du deiner QScrollArea sagen, dass sie das darf:

Code: Alles auswählen

scrollArea->setWidgetResizable(true);

Re: Widget dynamisch einer QScrollArea hinzufügen

Verfasst: 7. August 2011 16:41
von BartSimpson
Ich habe die Sache in zwischen geknackt, einfach geschaut wie es der Designer macht:))
Zuerst erzeugt der einfach ein Widget.
An dieses wird das Layout geheftet.
Und das das Layout dann meine eigenen Widgets.
Zum Schluss wird das "Hilfswidget" via setWidget mit der ScrollArea verheiratet.
So werde meine jetzt richtig dargestellt.
Ob das nun der beste Weg ist, gute Frage. Aber es geht auf alle Fälle.

Re: [gelöst] Widget dynamisch einer QScrollArea hinzufügen

Verfasst: 7. August 2011 19:14
von franzf
Das "Hilfswidget" ist das einzige, was du in die ScrollArea packen solltest. Du willst ja scrollbaren content, und den content solltest du schon angeben (setWidget()). Die Scrollarea ist ja nur ne Spezialisierung der allgemeineren QAbstractScrollArea, die einen viewport verwaltet.