Qt - Compiler skarży się na wywołanie setLayout () na moim MainWindow

Chcę się nauczyć, jak ręcznie tworzyć gui bez projektanta. Próbowałem dodać układ do mojegoMainWindow ale gdy biegnie, mówi

QWidget :: setLayout: Próba ustawienia QLayout "" w MainWindow "", która ma już układ

To jest mój kod:

//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();
}

Co jest nie tak? Zrobiłem to, co powiedziała moja książka. Sprawdziłem nawet jakiś kod w Internecie, który był naprawdę trudny do znalezienia i wciąż był taki sam. Po prostu nie mogę dodać układu do mojego okna.

questionAnswers(1)

yourAnswerToTheQuestion