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

Alles rund um die Programmierung mit Qt
Antworten
BartSimpson
Beiträge: 1379
Registriert: 6. November 2004 12:03
Kontaktdaten:

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

Beitrag 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.
Zuletzt geändert von BartSimpson am 7. August 2011 16:41, insgesamt 1-mal geändert.
franzf
Beiträge: 3114
Registriert: 31. Mai 2006 11:15

Re: Widget dynamisch einer QScrollArea hinzufügen

Beitrag 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);
BartSimpson
Beiträge: 1379
Registriert: 6. November 2004 12:03
Kontaktdaten:

Re: Widget dynamisch einer QScrollArea hinzufügen

Beitrag 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.
franzf
Beiträge: 3114
Registriert: 31. Mai 2006 11:15

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

Beitrag 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.
Antworten