To był tylko taki "skrót myślowy" :).
Wsadzić pośrednio zwykłego QWidgeta i zadziała na 100%.
Sam napisałbym pełnego layouta (dziedziczącego po QLayout), ale on wymaga troszkę więkcej kodu i wiedzy, a to było by za dużo dla korineX.
QStackedLayout jest drogą na skróty, wada jest taka, że nie obsługuje on layot'ów.
Konstruktor MainWidow powinien więc wyglądać mniej więcej tak:
MainWidow::MainWidow(QWidget * parent, Qt::WindowFlags flags)
: QMainWindow(parent, flags)
{
// setupui ...
MySquareLayout *sqr = new MySquareLayout;
ui->mainLayout->addLayout(sqr, 0, 0);
QWidget *helpingWidget = new QWidget;
sqr->addWidget(helpingWidget);
QGridLayout *buttonsLayout = new QGridLayout(helpingWidget);
setupButtons(buttonsLayout);
}
Edit:
w sumie jak się zastanowić to dziedziczenie po QBoxLayout też jest jakimś rozwiązaniem nawet prostszym bo obsługuje layout'y (trzeba tylko konstruktorowi dostarczyć dodatkowy parametr).