Witam.
Piszę sobie w c++/QT sapera. Mam jednak problem z wielkością okna w którym jest plansza. Mianowicie gdy wybieram nową grę(o innym rozmiarze) to usuwam PushButtony co mam i tworzę nowe, jednak rozmiar okna nie dostosowuje się ładnie.
Tak jest na początku.
user image
Później zmniejszam ilość Buttonów i robi się takie coś:
user image
Jednak chciałbym, by było takie coś:
user image

Dołączam też kod źródłowy:

#include "MainWindow.hpp"
#include <QDebug>
#include <QSizePolicy>

MainWindow::MainWindow(QWidget *parent)
{
  setMinimumSize(50,50);
  newGameAction = this->menuBar()->addAction("Nowa gra");
  connect(newGameAction, SIGNAL(triggered()), this, SLOT(newGame()));

  centralWidget = new QWidget();
  this->setCentralWidget(centralWidget);
  this->timeWidget = new QLCDNumber(this);

  mainLayout = new QVBoxLayout();

  centralWidget->setLayout(mainLayout);
  
  boardLayout = new QGridLayout();
  boardLayout->setSizeConstraint(QLayout::SetMinAndMaxSize);
  boardLayout->setHorizontalSpacing(0);
  boardLayout->setVerticalSpacing(0);
  
  
  upperLayout = new QHBoxLayout();
  upperLayout->addWidget(&button);
  upperLayout->addStretch(1);
  upperLayout->addWidget(timeWidget);


  mainLayout->addLayout(upperLayout);
  mainLayout->addLayout(boardLayout);
  newGame();
  show();
}

void MainWindow::prepareButtons(unsigned int height, unsigned int width)
{
  for (unsigned int i = 0; i<height; i++)
  {
    QList<FieldButton*> tmp;

    for (unsigned int j = 0; j<width; j++)
    {
      FieldButton *button = new FieldButton(this);
      tmp.append(button);
      boardLayout->addWidget(button, i, j);
    }
    buttons.append(tmp);
  }
}

void MainWindow::deleteButtons()
{
  for (unsigned int i = 0; i<buttons.size(); i++)
  {
    for (unsigned int j = 0; j<buttons[0].size(); j++)
    {
      delete buttons[i][j];
    }
  }
  buttons.clear();
}

MainWindow::~MainWindow()
{
  delete boardLayout;
  delete upperLayout;
  delete mainLayout;
  delete timeWidget;
}

void MainWindow::newGame()
{
  if (dial.exec())
  {
    deleteButtons();
    prepareButtons(dial.height, dial.width);
    this->adjustSize();
  }

}
 

Proszę o pomoc, wskazówkę. Serdecznie dziękuję :)