Qt - компилятор жалуется при вызове setLayout () в моем MainWindow

Я хочу научиться создавать графический интерфейс вручную без дизайнера. Я пытался добавить макет в мойMainWindow но при запуске говорит

QWidget :: setLayout: попытка установить QLayout "" на MainWindow "", который уже имеет макет

Это мой код:

//Header
class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    MainWindow(QWidget *parent = 0);
    ~MainWindow();
private:
    QHBoxLayout *layout;
};

//Constructor in my *.cpp
MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
{
    layout = new QHBoxLayout;
    this->setLayout(layout);
}

//The usual main function
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow w;
    w.show();

    return a.exec();
}

Что случилось? Я сделал то, что сказала моя книга. Я даже посмотрел какой-то код в интернете, который было очень сложно найти, и он был все тот же. Я просто не могу добавить макет в мое окно.

Ответы на вопрос(1)

Ваш ответ на вопрос