2016-11-09 4 views
0

Ich habe ein vertikales Layout Ich fülle mit Dateinamen. Ich habe einen QFileDialog, um Dateien auszuwählen, dann fügt der Slot dem Layout Namen hinzu.Qt - Größe des Layouts beim Hinzufügen von Elementen

void convertInterface::on_browseButton_clicked() 
{ 
    fileNames = QFileDialog::getOpenFileNames(this, tr("Open File"), "./FilesToConvert", tr("Test Files (*.txt)")); 
    for each (QString item in fileNames) 
    { 
     QLabel *name = new QLabel(this); 
     name->setText(QFileInfo(item).fileName()); 
     ui.mainLayout->addWidget(name); 
    } 
} 

Das Ergebnis mit 3 Dateien:

enter image description here

Das Ergebnis mit 3 weiteren Dateien, so dass insgesamt 6:

enter image description here

Gesamtlayout:

enter image description here

Wie wird das Layout automatisch angepasst?

Antwort

1

Zuerst anstelle der Zugabe des QVBoxLayout als Kind-Widget zum groupBox Widget, setzen die groupBox ‚s direkt Layout. Klicken Sie einfach mit der rechten Maustaste auf die Zeile groupBox im Objektinspektor und wählen Sie im Menü Layout - [etwas]. Diese Option ist möglicherweise nicht verfügbar, wenn das Widget keine Childs enthält. Um das Problem zu umgehen, fügen Sie einfach ein Dummy-Widget hinzu, legen Sie das Layout fest und löschen Sie das Dummy-Widget.

Zweitens benötigen Sie auch eine Art automatisches Layout auf dem übergeordneten Widget, also machen Sie das gleiche mit centralWidget. Als groupBox wird automatisch bei Bedarf erweitert.

Wenn Sie das Layout des übergeordneten Elements (centralWidget) unterbrechen, ist die Größe der untergeordneten Widgets festgelegt und kann nicht automatisch aktualisiert werden.

+0

Mein vertikales Layout befindet sich in einer Groupbox, die sich im zentralen Layout befindet. Wie soll ich das machen? – Dinendal

+0

Die Hierarchie ist nicht vollständig aus Ihrer Frage klar, können Sie es dort hinzufügen? Z.B. Ein Screenshot des Objektinspektors (wenn Sie in einem QtCreator/Designer entwickeln) würde viel sagen. Oder als Text angeben. – yman

+0

Ich habe ein Bild hinzugefügt – Dinendal

Verwandte Themen