У меня проблема с 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:
Добавление virtual к каждому объявлению наследования по-прежнему дает мне ту же ошибку:
class NavigatableItem : public virtual QObject
class Button : public virtual NavigatableItem, public virtual QToolButton
class MainMenuOption : public virtual Button
Даже после «очистить все», «запустить qmake» и «построить все» .