QMainWindow并没有setLayout()函数,因此不能使用setLayout()函数来设置layout,需要使用间接的方法。
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QPushButton>
#include <QHBoxLayout>
#include <QLayout>
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);//这句话必须在最前面
QPushButton *pButton1 = new QPushButton("one");
QPushButton *pButton2 = new QPushButton("two");
QPushButton *pButton3 = new QPushButton("three");
QPushButton *pButton4 = new QPushButton("FOur");
QPushButton *pButton5 = new QPushButton("Five");
QHBoxLayout *pHLayout = new QHBoxLayout();
pHLayout->addWidget(pButton1);
pHLayout->addWidget(pButton2);
pHLayout->addWidget(pButton3);
pHLayout->addWidget(pButton4);
pHLayout->addWidget(pButton5);
// QWidget *widget = new QWidget;
// widget->setLayout(pHLayout);
// this->setCentralWidget(widget);
ui->centralWidget->setLayout(pHLayout);
}
MainWindow::~MainWindow()
{
delete ui;
}