erança múltipla e sina

Estou tendo um problema com o QT em relação à herança múltipla por causa do QObject. Sei que muitos outros têm os mesmos problemas, mas não sei como devo corrigi-lo.

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

    ...
}

Quando faço isso

MainMenuOption* messages = new MainMenuOption();
connect(messages, SIGNAL(selected()), SLOT(onMenuOptionSelected()))

Vou receber o erro:

QObject 'é uma base ambígua de' MainMenuOption '

A razão pela qual deixei o NavigatableItem herdar do QObject por causa dos sinais. Existe uma maneira de fazer isso?

Editar

adição virtual a cada declaração de herança ainda me dá o mesmo err

class NavigatableItem : public virtual QObject

class Button : public virtual NavigatableItem, public virtual QToolButton

class MainMenuOption : public virtual Button

Mesmo depois de um 'clean all', 'execute qmake' e 'build all'

questionAnswers(3)

yourAnswerToTheQuestion