Просто после разделения на *.h и *.cpp нужно обязательно вызывать qmake. Иначе, все равно не соберется.
Так в том то и дело, что изначально ошибка возникла в штатном проекте, где *.h и *.cpp разделены. И очистку и qmake запускал. Видно не в этом дело было. А в одном файле тоже работает, в примерах проект такой есть.