QObjectが原因で、複数の継承に関してQTに問題があります。他の多くの人が同じ問題を抱えていることは知っていますが、どうすれば修正できるかわかりません。
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から継承させた理由。これを行う方法はありますか?
編集:
各継承宣言に仮想を追加しても、同じエラーが発生します。
class NavigatableItem : public virtual QObject
class Button : public virtual NavigatableItem, public virtual QToolButton
class MainMenuOption : public virtual Button
「すべてをクリーンアップ」した後でも、「qmakeを実行」および「すべてをビルド」します。