Qt ERROR: “undefined reference to vtable when Q_OBJECT…”

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) .