Frage

Ich entwarf eine QMainWindow mit QtCreator's Designer. Es besteht aus der Standard-Zentral Widget (a QWidget), die eine QVBoxLayout mit allen anderen Widgets in die es enthält. Jetzt alles, was ich will, ist, dass der QVBoxLayout nimmt automatisch die gesamte zentralen Widgets Raum Rechteck.

Wie kann ich das tun? Ich habe keine nutzbare Eigenschaft finden weder in den zentralen Widgets Eigenschaften noch die QVBoxLayout's diejenigen.

War es hilfreich?

Lösung

Sie müssen keine QVBoxLayout manuell erstellen. Wählen Sie einfach Ihre zentrale QWidget und drücken Sie eine Make-Layout-Taste.

alt text

Andere Tipps

Wenn Sie es mit dem Code tun wollen stattdessen QtCreator zu verwenden, können Sie das Layout in einem QWidget gesetzt und dann den QWidget als zentrales Widget des Hauptfensters wie folgt aus:

#include <QtGui>
#include <QWidget>
#include <QHBoxLayout>
#include "mainwindow.h"

MainWindow::MainWindow() {  

        // Set layout
        QHBoxLayout *layout = new QHBoxLayout;
        layout->addWidget(myWidget1);
        layout->addWidget(myWidget2);

        // Set layout in QWidget
        QWidget *window = new QWidget();
        window->setLayout(layout);

        // Set QWidget as the central layout of the main window
        setCentralWidget(window);

}

Fügen Sie mindestens ein Widget auf dem MainWindow. Dann wählen Sie Ihre Fenster indem Sie darauf klicken und klicken Sie auf den VerticalLayout Knopf an der Spitze der QTCreator. Sie Vertikales Layout wird automatisch an das zentrale Widget hinzugefügt und füllt die ganze Fläche.

Dies ist bereits beantwortet, aber ich persönlich bevor alle Bedienelemente zu halten und Layouts manuell in das Formular eingefügt. Ich füge keine Kontrollen in den Klassendateien, ich nur die Signale / Slots Haken bis zu verstecken / show-Widgets, die für die Logik in der Klasse, in der Klasse.

Um manuell ein Layout zu jedem Widget hinzufügen Sie zunächst mindestens ein Kind-Widget / Steuerung hinzufügen. Das war mir nicht ganz klar und ich habe versucht, das Layout zuerst hinzuzufügen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top