I'm hitting a wall here. I have a plugin interface that needs signals and slots (so must subclass QObject and have the Q_OBJECT macro), then my subclasses (or my plugins, as it were) need to inherit both my interface and either QWidget or something similar (like QGLWidget).

Unfortunately, when I inherit both my interface and QWidget, my compiler is telling me that QObject is an ambiguous base of my plugin. This appears to stem from the Q_EXPORT_PLUGIN2() macro. Here's the exact compiler output:
Quote Originally Posted by gcc
evilcpcMenuAeon.cpp: In function 'QObject* qt_plugin_instance()':
evilcpcMenuAeon.cpp:33: error: 'QObject' is an ambiguous base of 'evilcpcMenuAeon'
/usr/include/qt4/QtCore/qpointer.h: In member function 'QPointer<T>::operator T*() const [with T = evilcpcMenuAeon]':
evilcpcMenuAeon.cpp:33: instantiated from here
/usr/include/qt4/QtCore/qpointer.h:58: error: 'QObject' is an ambiguous base of 'evilcpcMenuAeon'
/usr/include/qt4/QtCore/qpointer.h: In member function 'QPointer<T>& QPointer<T>::operator=(T*) [with T = evilcpcMenuAeon]':
evilcpcMenuAeon.cpp:33: instantiated from here
/usr/include/qt4/QtCore/qpointer.h:48: error: 'QObject' is an ambiguous base of 'evilcpcMenuAeon'
/usr/include/qt4/QtCore/qpointer.h:48: error: 'QObject' is an ambiguous base of 'evilcpcMenuAeon'
make[1]: *** [release/evilcpcMenuAeon.o] Error 1
make[1]: Leaving directory `/home/rich/svn/evilcpc/trunk/plugins/menu/aeon'
make: *** [release] Error 2
Is there any way around this?