У меня проблема с QT из-за множественного наследования из-за QObject. Я знаю, что у многих других есть такие же проблемы, но я не знаю, как мне это исправить.
class NavigatableItem : public QObject
{
Q_OBJECT
signals:
void deselected();
void selected();
void activated();
};
class Button : public NavigatableItem, public QToolButton
{
Q_OBJECT
...
}
class MainMenuOption : public Button
{
Q_OBJECT
...
}
Когда я делаю это
MainMenuOption* messages = new MainMenuOption();
connect(messages, SIGNAL(selected()), SLOT(onMenuOptionSelected()))
Я получу ошибку:
QObject 'является неоднозначной основой' MainMenuOption '
Причина, по которой я позволил NavigatableItem наследоваться от QObject из-за сигналов. Есть ли способ сделать это?
Edit:
Добавление виртуального к каждому объявлению наследования, все еще дает мне ту же ошибку:
class NavigatableItem : public virtual QObject
class Button : public virtual NavigatableItem, public virtual QToolButton
class MainMenuOption : public virtual Button
Даже после «очистить все», «запустить qmake» и «собрать все».