由于 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 继承是因为信号。有没有办法做到这一点?
编辑:
将 virtual 添加到每个继承声明中,仍然给我同样的错误:
class NavigatableItem : public virtual QObject
class Button : public virtual NavigatableItem, public virtual QToolButton
class MainMenuOption : public virtual Button
即使在“全部清理”、“运行 qmake”和“全部构建”之后。