重写 QGraphicsEllipseItem 示例
c++ - QT QGraphicsScene绘制弧 - IT工具网 (coder.work)
如图新建一个继承 QGraphicsEllipseItem 类报错
#pragma once
#include<iostream>
#include <QGraphicsEllipseItem>
#include<QMouseEvent>
using namespace std;
//class myEllipseItem : public QObject, public QGraphicsEllipseItem
class myEllipseItem : public QGraphicsEllipseItem
{
Q_OBJECT
//public:
// myEllipseItem(QObject *parent);
// ~myEllipseItem();
void myEllipseItem::mousePressEvent(QMouseEvent* event);
};
moc_myEllipseItem.cpp(67,56): error C2039: "staticMetaObject": 不是 "QGraphicsEllipseItem" 的成员
moc_myEllipseItem.cpp(86,34): error C2039: "qt_metacast": 不是 "QGraphicsEllipseItem" 的成员
moc_myEllipseItem.cpp(91,33): error C2039: "qt_metacall": 不是 "QGraphicsEllipseItem" 的成员
网上查询方法:
error: C2039: “staticMetaObject”: 不是“QGraphicsItem”的成员 - CodeAntenna当使用Qt的图形视图框架时,自定义图形类时,一般这样写classmyItem:publicQGraphicsItem{public:myItem();voidpaint(QPainter*p...,CodeAntenna技术文章技术问题代码片段及聚合https://codeantenna.com/a/L2A1YaEY3k让 myEllipseItem 同时继承 QObject 和 QGraphicsEllipseItem 就不再报错
#pragma once
#include<iostream>
#include <QGraphicsEllipseItem>
#include<QMouseEvent>
using namespace std;
class myEllipseItem : public QObject, public QGraphicsEllipseItem
//class myEllipseItem : public QGraphicsEllipseItem
{
Q_OBJECT
//public:
// myEllipseItem(QObject *parent);
// ~myEllipseItem();
void myEllipseItem::mousePressEvent(QMouseEvent* event);
};