Hinzufügen von widgets zu einem ScrollArea
Erstelle ich ein Fenster dimanica, um die Liste der downloads.
Aber die scrollbar funktioniert nicht, und die "widgets" - Kindern sind "cut".
Wo kann ich falsch sein? Danke.
Quelle:
QWidget *central = new QWidget;
QScrollArea *scroll = new QScrollArea;
QVBoxLayout *layout = new QVBoxLayout(scroll);
scroll->setWidget(central);
scroll->setWidgetResizable(true);
int i=0;
while(i<10){
QWidget *p1 = new QWidget;
QHBoxLayout *hl = new QHBoxLayout(p1);
QLabel *label1 = new QLabel("test");
QLabel *label2 = new QLabel("0%");
hl->addWidget(label1);
hl->addWidget(label2);
layout->addWidget(p1);
i++;
}
QMainWindow *w = new QMainWindow;
w->setGeometry(50,50,480,320);
w->setCentralWidget(scroll);
w->show();
Es sieht aus wie Sie versuchen, machen Sie eine Liste. Vielleicht haben Sie einen Blick auf
QListWidget
oder die QListView
und QAbstractListModel
duo?InformationsquelleAutor Guilherme Nascimento | 2013-05-28
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Fand Ihre Fehler, sollten Sie
layout
widgetcentral
nichtscroll
:BEARBEITET:
Ihre Etiketten bereits nehmen Sie Platz, wenn Sie bemerkt,
label1
beginnt am linken Rand endet in der Mitte, wolabel2
beginnt und endet am rechten Rand. Wenn ich Sie richtig verstanden, Sie wollenlabel1
zu nehmen den ganzen Raum zur Verfügung, währendlabel2
mit Prozenten nur nehmen, was Raum benötigt wird, nicht mehr?Lesen über
QSizePolicy
KlassesetSizePolicy()
auf Ihre Etiketten. Versuchen Sie, fügen Sie diese Zeile direkt nach label2 Erklärung:Und Zeile hinzufügen
layout->addStretch();
Recht vorQMainWindow *w = new QMainWindow;
Sie wollen zu halten, geometrie (50,50,480,320) und stretch-labels nehmen alle horizontalen Raum?
Ja, ich möchte jedes Element (Widget Kind) besetzen alle Platz horizontal (nur horizontal). Könnten Sie mir helfen? Vielen Dank für Ihre Aufmerksamkeit. Keine Feste Höhe oder Breite. Das Fenster kann in der Größe verändert werden.
aktualisiert eine Antwort
ich weiß nicht understant, was Sie wollen, zu erreichen, in meiner test-app, funktioniert alles perfekt. Warum gehst du nicht post-Abbildung mit Ihrer aktuellen situation, und wie Sie es ändern wollen
InformationsquelleAutor Shf