Вобщем главное нужно знать в какой момент отрисовывается виджет или когда у него уже посчитаны все размеры.
По идее после вызова QWidget::adjustSize(), который делается в show().
Но нужно иметь в виду, что полученный размер после вызова adjustSize() не всегда будет соответствовать полученному. Всё зависит от зависимостей лейаутов и размеров главного окна.
Есть 100%-ный, но немного непростой способ. Нужно перегрузить showEvent() top-level окна (либо повесить eventFilter()), в котором после вызова базового showEvent() будут окончательные размеры.
Так то да. Но в языках отличных от английского из-за размера текста нужно пересчитать spacing и margin некоторых виджетов, а для этого нужно знать координаты. mapToGlobal выдает нулевые координаты если пытаюсь пересчитать до отрисовки и естественно контролы скачут если пересчитываю после нее. А где считаются координаты контролов я локализовать не могу...
Если компановка у вас зависит от размера текста, то явно с ней что-то не то. Нужно пересмотреть дизайн форм.