Что приводит к неполным типам? (QGraphicsItem: Источник или цель имеет неполный тип)
У меня есть собственный QGraphicsItem, который (среди прочего) изменял курсор на открытую руку при нажатии, используя стандартную процедуру, описанную в документации Qt. Это работало нормально в течение последних двух недель или около того. Вчера я изменил несколько вещей в классе. Самое важное, что теперь я создаю подкласс непосредственно из QGraphicsPixmapItem вместо QGraphicsItem.
В какой-то момент я начал получать следующую ошибку (частично мой собственный перевод):
C664: Conversion of parameter 1 from 'Qt::CursorShape' to 'const QCursor &' not possible. Source or target has incomplete type.
Теперь я пытаюсь выяснить, почему мой предмет имеет неполный тип. К сожалению, я не могу отследить, когда именно эта проблема начала возникать. Измененный базовый класс был моей единственной догадкой, но я не мог придумать, как это могло быть причиной. После поиска ошибки я нашел примеры, когда члены класса были несколько плохо определены, но я не смог найти ошибку в моих объявлениях. Итак, вот Заголовок, на случай, если я что-то пропустил:
<code>#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; }; </code>
Если этот файл правильный, то есть ли общие проблемы, которые приводят к неопределенным типам, которые я могу проверить? Может быть, я даже ищу не в том месте?
Спасибо за ваше время, Луиза