добавление дочернего элемента в QMainWindow

как я могу добавить два ребенка Widget объекты в равной части QMainWindow.

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

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

2 ответов


Как E-цинк предложил вам использовать макет. Скажем, вы хотите вставить два виджета в Главное окно.

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

это будет макет виджетов по горизонтали, и вы получите этот результат: QHBoxLayoutExample

и если вы хотите расположить их вертикально, используйте QVBoxLayout

я настоятельно рекомендую прочитать документацию. управление макетом в Qt


использовать QMainWindow::setCentralWidget(QWidget *) добавить свой собственный контроль.