[ACCEPTED]-adding child in QMainWindow-qmainwindow
Accepted answer
As e-zinc suggested you have to use layout. Say 5 you want to insert two widgets into the 4 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 3 and you will get this result:
And if you 2 want to layout them vertically use QVBoxLayout
I would 1 strongly suggest reading the documentation. Layout Management in Qt
Use QMainWindow::setCentralWidget(QWidget *)
to add your own control.
0
////////if you want to create from main.cpp////////
#if 0
int main(int argc, char* argv[])
{
QApplication app(argc, argv);
QMainWindow* MainWindow = new QMainWindow(NULL);
QWidget* cwidget = new QWidget(MainWindow);
QPushButton* button1 = new QPushButton(cwidget);
QPushButton* button2 = new QPushButton(cwidget);
button1->setText("Button1");
button2->setText("Button2");
button1->move(10, 100);
button2->move(10, 200);
MainWindow->setCentralWidget(cwidget);
MainWindow->resize(400, 300);
MainWindow->show();
return app.exec();
}
#else
int main(int argc, char* argv[])
{
QApplication app(argc, argv);
QMainWindow* MainWindow = new QMainWindow(NULL);
QWidget* cwidget = new QWidget(MainWindow);
QHBoxLayout* layout = new QHBoxLayout; //horizontal layout
QPushButton* button1 = new QPushButton("button1");
QPushButton* button2 = new QPushButton("button2");
layout->addWidget(button1);
layout->addWidget(button2);
MainWindow->setCentralWidget(cwidget);
MainWindow->centralWidget()->setLayout(layout); //centralWidget() is getcentralWidget()
MainWindow->resize(400, 300);
MainWindow->show();
return app.exec();
}
#endif
0
Source:
stackoverflow.com
More Related questions
Cookie Warning
We use cookies to improve the performance of the site. By staying on our site, you agree to the terms of use of cookies.