adding child in QMainWindow

anj picture anj · Feb 15, 2012 · Viewed 16.7k times · Source

How can i add two child Widget objects in equal portion of QMainWindow.

MainWindow::MainWindow(QWidget *parent)
     : QMainWindow(parent)

{   TreeArea *ta= new TreeArea(this);
    TreeArea *ta1= new TreeArea(this);
.
.
.
  TreeArea::TreeArea(QWidget *parent) :
 QWidget(parent)
{
.
.
.

Answer

Neox picture Neox · Feb 16, 2012

As e-zinc suggested you have to use layout. Say you want to insert two widgets into the mainwindow.

QHBoxLayout *layout = new QHBoxLayout;

QPushButton *button1 = new QPushButton("button1");
QPushButton *button2 = new QPushButton("button2");

layout->addWidget(button1);
layout->addWidget(button2);

setCentralWidget(new QWidget);
centralWidget()->setLayout(layout);

This will layout widgets horizontally and you will get this result: QHBoxLayoutExample

And if you want to layout them vertically use QVBoxLayout

I would strongly suggest reading the documentation. Layout Management in Qt