布局是QT界面当中必不可少的一环。我们常常使用QHBoxLayout、QVBoxLayout等进行布局。然而有个问题是,在MainWindow并不能直接进行布局。不然会显示QWidget::setLayout: Attempting to set QLayout "" on MainWindow这个错误。
那么如果有在MainWindow上布局的需求,我们应该如何做呢?
下面我就说一说使用QWidget在MainWindow上布局的方法。
首先,我们应当创建一个QWidget的实例,暂且就叫widget吧,并将这个实例设置为centralWidget。
QWidget *widget = new QWidget();
this->setCentralWidget(widget);
然后,我们就可以愉快的布局了
QHBoxLayout *hbLayout = new QHBoxLayout();
hbLayout->addWidget(m_openButton);
hbLayout->addWidget(m_closeButton);
最后,只需要将widget的布局设置为布局就好了
centralWidget()->setLayout(hbLayout);