Domanda

Ho progettato un QMainWindow con QtCreator's designer. Consiste del widget centrale predefinito (un QWidget) che contiene un QVBoxLayout con tutti gli altri widget in esso. Ora tutto quello che voglio, è che il QVBoxLayout occupa automaticamente tutto il widget centrali rettangolo spazio.

Come posso fare questo? Non ho trovato alcuna né proprietà utilizzabile nelle proprietà widget centrali né quelli QVBoxLayout's.

È stato utile?

Soluzione

Non è necessario creare un QVBoxLayout manualmente. Basta selezionare il QWidget centrale e premere un pulsante make-layout.

alt text

Altri suggerimenti

Se si vuole fare con il codice invece di utilizzare QtCreator, è possibile impostare il layout in un QWidget e quindi impostare il QWidget come il widget centrale della finestra principale in questo modo:

#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);

}

Aggiungi almeno un widget sul vostro MainWindow. Quindi selezionare la finestra cliccando su di esso e fare clic sul pulsante VerticalLayout in cima QTCreator. È layout verticale viene automaticamente aggiunto al widget di centro e riempie tutta la superficie.

Questa è già una risposta, ma io personalmente preferisco mantenere tutti gli elementi di controllo e layout aggiunti manualmente al form. Non aggiungo controlli nei file di classe, mi limito a collego i segnali / slot per nascondere / mostrare widget rilevanti per la logica nella classe, all'interno della classe.

Per aggiungere manualmente un layout a qualsiasi widget di è prima necessario aggiungere almeno un widget figlio / controllo. Non era del tutto chiaro per me e stavo cercando di aggiungere il layout di prima.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top