Este error ocurre puesto que la macro Q_OBJECT no está en un archivo *.h Los archivos que contienen Q_OBJECT son procesados por moc (Meta-Object Compiler) y éste sólo procesa los archivos header (archivos .h). Solución Por tanto, la solución es mover la(s) clase(s) que contiene(n) macros Q_OBJECT a archivos header (*.h) .