В моем приложении Qt у меня есть следующий базовый класс.Я использую QObject, потому что я хочу использовать механизм Signal-Slot во всех производных классах.
class IRzPlugin : public QObject {
public:
virtual void registerMenu(QWidget*);
virtual void execute();
}
Тогда у меня есть другой класс, как показано ниже.Мне нужно расширяться от QWidget, потому что мне нужно реализовать методы обработки событий во всех производных классах. (MouseMoveEvent (), keyPressEvent () и т. Д.);
class IRzLayeringPlugin : public IRzPlugin , public QWidget{
}
Но компилятор выдает следующие ошибки:
C:\svn\osaka3d\tags\iter08\prototype\osaka3d\rinzo\plugin\moc_IRzLayeringPlugin.cxx: In member function `virtual const QMetaObject* IRzLayeringPlugin::metaObject() const':
C:\svn\osaka3d\tags\iter08\prototype\osaka3d\rinzo\plugin\moc_IRzLayeringPlugin.cxx:51: error: `QObject' is an ambiguous base of `IRzLayeringPlugin'
C:\svn\osaka3d\tags\iter08\prototype\osaka3d\rinzo\plugin\moc_IRzLayeringPlugin.cxx:51: error: `QObject' is an ambiguous base of `IRzLayeringPlugin'
make[2]: *** [CMakeFiles/Rinzo.dir/plugin/moc_IRzLayeringPlugin.cxx.obj] Error 1