代码示例:

class TestOne : public QWidget // To fix this i need to modify  class QWidget : public virtual QObject{}; which belongs to qt
{
  // ...
};

class TestTwo : public virtual QObject
{
  // ...
};

class Test : public TestOne, public TestTwo
{
 // ...
};

有什么其他方法可以解决此问题?

最佳答案

QObject不适用于多重继承。 QObject不支持从另一个QObjects进行多重继承。如果您从两个类继承,则第一个可以是QObject,第二个不能按照http://qt-project.org/doc/qt-4.8/moc.html



您可以在两个QObject之间建立关联,并在它们之间转发信号。

您可以以不需要信号/插槽并且不从QObject继承信号/插槽的方式来抽象通用功能。然后从中继承。然后将MI中的该QObject免费类与您的类混合使用。您可以通过派生QObject的信号/插槽将调用转发给那些继承的方法

关于c++ - qobject基的多重继承,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12131357/

10-12 20:31