2012-02-15 2 views
7

Как я могу добавить двух дочерних объектов Widget в равной доле QMainWindow.Добавление ребенка в QMainWindow

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

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

Вы должны использовать макет. –

ответ

11

Как предложил e-цинк, вам нужно использовать макет. Предположим, вы хотите вставить два виджета в 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); 

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

И если вы хотите, чтобы макет их вертикально использовать QVBoxLayout

Я бы настоятельно рекомендуем ознакомиться с документацией. Layout Management in Qt

+0

Я работаю над пользовательским заголовком, и я думаю, что это первый способ: используя макет, чтобы начать размещать весь виджет там – swdev

2

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

Смежные вопросы