Можно долго искать черную кошку в темной комнате...
QTabWidget оказался не так прост как хотелось бы нам казаться. Вроде все работает сразу и как надо. Накидали разных виджетов на него , все скомпоновали (с параметрами по умолчанию в ui форме), работаем и не можем понять логику изменения окна с нашим QTabWidget...
При скрытии элементов на какой-нибудь закладке размер закладки вроде бы должен уменьшаться , а он не уменьшается ... И при этом оставшиеся виджеты как-то перераспределяются по-другом (пропорционально по высоте QTabWidget).
Исходное состояние :

Щелкаем показать и все нормально отображается :

Щелкаем скрыть и размер QTabWidget к исходному не возвращается:

А очень хотелось бы, а то как-то странно получается : уже то ,что чекбокс съехал на середину нехорошо (он должен остаться там где был).
Суть в том , что для QTabWidget после "скрытия элемента ниже" надо сделать
adjustSize() и updateGeometry().
И тогда размер вернется к исходному:

Когда у вас форма с большим количеством виджетов очень легко пойти по ложному следу.
Мораль такова : надо упрощать форму до минимума, лучше сразу сохдать отдельный проект для тестирования, и искать причину будет намного легче.
Например так :

Ну кто-бы мог подумать , что QTabWidget будет так себя вести (Qt 4.8.1)?
Можно и нужно все понять изучив исходники Qt, но это время, а всегда хочется побыстрее получить результат.
Но благодаря решению этой проблемы пришлось понять как работают события, переопределить QApplication и посмотреть какие события летают.
Так же научились создавать свои события (на основе QEvent) и посылать их в очередь. И как их же отлавливать в коллбеках.
И даже отрисовку пришлось понять QPaintEngine и т.д.
И оказалось, что дело было совсем в другом.
То есть это был не запланированный вынос мозга там, где казалось бы ничего не предвещало проблем.
Можно еще посмотреть updateGeometry()