updateGeometry()

Из описания в исходниках самого Qt сказано, что:

void QWidget::updateGeometry()
Notifies the layout system that this widget has changed and may need to change geometry.

Call this function if the sizeHint() or sizePolicy() have changed.

For explicitly hidden widgets, updateGeometry() is a no-op. The layout system will be notified as soon as the widget is shown.

Тут сказано, что что эту функцию надо вызывать , когда изменяется sizeHint() у объекта или sizePolicy().

Насчет sizeHint действительно получается  интересный и правильный результат с отрисовкой нового размера виджета. 

То есть например мы имеем виджет, расположенный на форме, размер которого хотелось бы менять, подстраиваясь под содержимое в нем.

Например у нас есть QTableView и мы хотим отображать его содержимое без скроллинга, то есть, чтобы QTableView увеличивался в размере при добавлении строки и уменьшался при удалении строки и всегда на экране мы бы видели полное содержание.

Так вот делается это так: сначала вычисляем размер QTableView в пикселях через обход всех строк и получения высоты строк, потом добавляем высоту горизонтального хэдера. Аналогично поступаем со столбцами. В итоге получаем реальный QSize нашего QTableView

Далее устанавливаем реальный QSize нашему sizeHint виджета QTabeView через setSizeHint.

И вот теперь надо вызвать для QTableView метод updateGeometry().

И возможно еще сделать updateGeometry для формы, на которой расположен QTableView.

И это сработает как нам надо дамы и господа! QTableView будет подстраиваться, изменять свой размер под содержимое в нем при добавлении или удалении строк. Очень полезная фича.

Обращаем внимание, что метод adjustSize мы нигде не применяем.

Проверено на Qt 4.8.1, toolchain msvc-2010.