I designed a QMainWindow
with QtCreator\'s
designer. It consists of the default central widget (a QWidget
) which contains a QVBo
Add at least one widget on your MainWindow
. Then select your window by clicking on it and click on the VerticalLayout
Button at the top of QTCreator
. You Vertical Layout is automatically added to the central widget and fills all the surface.
This is already answered, but I personally prefer to keep all control elements and layouts added manually to the form. I do not add controls in the class files, I merely hook up the signals/slots to hide/show widgets relevant to the logic in the class, within the class.
To manually add a layout to any widget you must first add at least one child widget/control. That wasn't totally clear to me and I was trying to add the layout first.
If you want to do it with code instead of using QtCreator
, you could set the layout in a QWidget
and then set the QWidget
as the central widget of the main window like this:
#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);
}
You don't have to create a QVBoxLayout
manually. Just select your central QWidget
and press a make-layout button.