Система сборки, молча запускаемая QtCreator (IDE), запускает утилиту uic.exe, которая «компилирует» файл .ui в файл .h (который может понять любой компилятор, пока он не понимает формат .ui).
Это может произойти с любой системой сборки в любой IDE, правильно настроенной для работы с Qt. Он также делает то же самое для генерации moc (для управления сигналами / слотами).
Чтобы узнать, нужно ли запускать uic, он просто проверяет временные метки. Если .h старше, чем .ui, это означает, что .h нужно сгенерировать снова. Это тот же механизм, который используется вашим компилятором для определения необходимости компиляции .cpp или нет (если файл .obj / .o отсутствует или он старше, чем файл .cpp).