Использую оба варианта. Дизайнер может создать какую-то базовую заготовку, но вот размещать элементы динамически во время выполнения программы он не может.
Конечно без формошлепанья никак. Это же не dialog в консоли. Сами разрабы небось не помнят наизусть все 100500 свойств и методов из 100500 слов и буков.
Применяю оба способа, просто когда есть динамическая форма с множеством однотипных элементов - только тогда программно, при этом в Qt легко из кода получить указатели по имени виджетов.
В конторе, где я работал раньше, там программно писали. Но еще были шкурки (Skin), их специально обученный человек дизайнил в фотошопе. Мы эти скины цепляли программно тоже.
Создаю UI программно. Конечно писанины получается немало, но зато всё в одном месте. Не нужно переключаться из редактора в дизайнер, чтобы посмотреть «а какое имя у этого элемента управления?» или «а где это я соединяю сигнал со слотом?».