QT - widgets Hinzufügen horizontales layout
ich habe ein horizontales layout, und ich bin das hinzufügen von widgets durch die Nutzung
ui->horizontalLayout->addWidget(label);
Aber hinzufügen Strategie ist nicht das, was ich will. Zum Beispiel, wenn ich Elemente hinzufügen, es werden zunächst der Anfang, dann setzt sich am Ende halten und setzen von Ende.
Aber, was ich will, ist, dass, wenn ich widget hinzufügen, um das layout, es sollte gesetzt werden, neben den bisherigen widget. wie, dass ,
ist es möglich, das zu tun?
InformationsquelleAutor abby | 2013-05-07
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hinzufügen einer Bahre, nachdem Sie Hinzugefügt haben, werden alle der widgets.
tun.
Was ist das Ergebnis?
nichts verändert immer noch die gleichen.
Das scheint sehr seltsam für mich. Sie fügte hinzu, es nachdem hinzufügen der widgets, richtig?
yeap. nach der for-Schleife beendet ist (nachdem alle widgets Hinzugefügt werden), füge ich die
ui->horizontalLayout->addStretch();
InformationsquelleAutor Lee White
Können Sie ein spacer Element, entweder auf der Außenseite des horizontalen layout -, oder in Ihrer horizontalen layout. Wenn Sie fügen Sie die Abstandshalter-Element innerhalb des horizontalen Layouts, die Sie haben zu stellen Sie sicher, fügen Sie Ihre label-widgets vor dem spacer Element. Verwenden Sie die insertWidget() Funktion hinzufügen, um Ihre Etiketten in diesem Fall.
Oder fügen Sie das spaceritem an das Ende Ihrer horizontalen layout angezeigt, nachdem Sie Sie Hinzugefügt haben, Ihre label-widgets.
Hier ist ein Beispiel:
Ich veränderte meine Antwort und fügte ein Beispiel.
Sie fügt hinzu, wie das zweite Bild Stelle ich in Frage. Aber ich will keine Pausen zwischen den Noten, wie Dritte Bild.
Das sollte nicht passieren, wenn Sie fügen Sie Ihre Abstandshalter-Element an der richtigen Stelle mit der richtigen Größe-Richtlinien. Macht es einen Unterschied, wenn Sie das spacer-Element?
InformationsquelleAutor thuga
setAlignment(Qt::AlignLeft);
sollte den trick tun. Auch Sie können diese mit:setSpacing(0);setContentsMargins(0, 0, 0, 0);
entfernen Sie zusätzliche Leerzeichen zwischen den widgets.
InformationsquelleAutor Straticiuc Vicu