Analicé las preguntas relacionadas y no pude encontrar nada que tratara exactamente de lo que estaba hablando, así que déjenme describirlo.En Qt, ¿cómo utilizo las ranuras Q_OBJECT y señales con herencia múltiple?
Tengo una clase, digamos foo que necesita tener sus propios slots y señales, pero también necesita heredar de QXmlDefaultHandler (suena bastante extraño, pero me encontré con esta situación al intentar utilizar QHttp para leer un sitio web directamente en un QBuffer).
class foo: public QXmlDefaultHandler, public QObject
{
public:
foo();
~foo();
Q_OBJECT
public slots:
void bar();
}
Este código, si va acompañado de un cpp para conectar la barra a una señal en otro lugar, no se compilará. Obtendrá errores sobre algunos miembros de QObject que no son miembros de QXmlDefaultHandler. Además, no puede mover Q_OBJECT o si no obtiene errores vtable por no implementar algunas cosas (¡vaya, pruébelo!).
por favor, consulte mi respuesta para la (muy simple) solución. Consideraré votarte como la respuesta aceptada si creo que lo explicas mejor que yo.
editar: para usted C++ y veteranos de Qt, por favor publique una respuesta si puede explicarlo mejor. Pasé bastante tiempo buscando esta información, así que por favor ayuda a alguien más si puedes hacerlo mejor que yo.