Вот так работает. Глянь в консоль приложения, он там вероятно писал "QLayout: Attempting to add QLayout "" to CustomWidget "", which already has a layout", т.к. он поставился, когда ты указывал this в параметре конструктора.
auto scaleLabel = new QLabel("Размер проекта:", this);
auto scaleSpinBox = new QSpinBox(this);
scaleSpinBox->setRange(1, 1000000);
scaleSpinBox->setSingleStep(10);
scaleSpinBox->setValue(10);
scaleSpinBox->setSuffix(" KLOC");
auto scaleLayout = new QHBoxLayout;
scaleLayout->addWidget(scaleLabel);
scaleLayout->addWidget(scaleSpinBox);
auto topLayout = new QVBoxLayout;
topLayout->addLayout(scaleLayout);
this->setLayout(topLayout);
P.S. для виджетов тоже можно не добавлять parent'а, т.к. addWidget вызывает addItem, который его добавит.