代码之家  ›  专栏  ›  技术社区  ›  JHollanti

Qt从QGraphicsEllipseItem继承

qt
  •  5
  • JHollanti  · 技术社区  · 16 年前

    error: 'staticMetaObject' is not a member of 'QGraphicsEllipseItem'
    

    下面是课程代码:

    class MyEllipseItem : public QGraphicsEllipseItem
    {
        Q_OBJECT
    
    public:
        MyEllipseItem (const QRectF & outline) : QGraphicsEllipseItem(outline)
        {
    
        }
    };
    
    4 回复  |  直到 16 年前
        1
  •  8
  •   Maxim Popravko    16 年前

    QGraphicsEllipseItem不是QObject,所以只需从类声明中删除qu对象。

        2
  •  1
  •   Dr Deo    14 年前

    我在继承QRunnable时也遇到了类似的错误,顺便说一下,QRunnable不是QObject。
    原因

    1. Bad order of inheritence
        3
  •  1
  •   pnezis    14 年前

    class MyEllipseItem : public QGraphicsEllipseItem, public QObject
    {
        Q_OBJECT
    
    public:
        MyEllipseItem (const QRectF & outline) : QGraphicsEllipseItem(outline)
        {
    
        }
    };
    

    继承遗产也许是个更好的主意 QGraphicsObject

    有关更多详细信息,请查看 QGraphicsObject documentation

        4
  •  1
  •   MohammadHasan Abbasi    10 年前

    在这种情况下,您只需尝试继承QObject 弗斯特

    多重继承要求QObject是第一个 ,否则您将得到与上面相同的错误,或者从moc得到类似于“YourClass inherits from two QObject subclass”的内容。

    See this link! 更多信息。

    例如:

    #include<QObject>
    #include<QGraphicsEllipseItem> 
    class myclass :  public QObject , public QGraphicsEllipseItem{
    Q_OBJECT
    
    
    // your code...
    
    };