我有一个自定义的 QGraphicsItem,它(除其他外)使用 Qt 文档中描述的标准过程在单击时将光标更改为张开的手。这在过去两周左右工作得很好。昨天,我在课堂上改变了一些东西。最重要的是,我现在直接从 QGraphicsPixmapItem 而不是 QGraphicsItem 子类化。
在某些时候,我开始收到以下错误(部分是我自己的翻译):
C664:无法将参数 1 从“Qt::CursorShape”转换为“const QCursor &”。源或目标的类型不完整。
我现在试图弄清楚为什么我的项目类型不完整。不幸的是,当这个问题开始发生时,我无法追溯。改变的基类是我唯一的猜测,但我真的想不出一种方法,这怎么可能是原因。谷歌搜索错误后,我找到了一些示例,其中类成员的定义有些不明确,但我在声明中找不到错误。所以,这是标题,以防我错过了什么:
#include <QGraphicsPixmapItem>
class Collection;
class ItemSource;
class PhotoItem : public QGraphicsPixmapItem
{
public:
PhotoItem( QString sourceFilePath, Collection *collection =0, QColor color =Qt::white, qreal size = 80.0);
enum Orientation { portrait, landscape };
QPixmap content();
bool hasContent();
QColor color();
void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget);
QRectF boundingRect() const;
void mousePressEvent(QGraphicsSceneMouseEvent *event);
void mouseMoveEvent(QGraphicsSceneMouseEvent *event);
void mouseReleaseEvent(QGraphicsSceneMouseEvent *event);
void mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event);
private:
qreal _size;
Orientation _orientation;
QPixmap _content;
QColor _color;
Collection *_collection;
ItemSource *_source;
};
如果这个文件是正确的,那么是否有任何导致我可以检查的未定义类型的常见问题?也许我什至在错误的地方搜索?
谢谢你的时间,路易丝