Was führt zu unvollständigen Typen? (QGraphicsItem: Quelle oder Ziel hat unvollständigen Typ)

Ich habe ein benutzerdefiniertes QGraphicsItem, das (unter anderem) den Cursor nach dem in der Qt-Dokumentation beschriebenen Standardverfahren in eine offene Hand verwandelt. Dies hat in den letzten zwei Wochen gut funktioniert. Gestern habe ich ein paar Dinge in der Klasse geändert. Am wichtigsten ist, dass ich jetzt eine Unterklasse direkt von QGraphicsPixmapItem anstelle von QGraphicsItem habe.

Irgendwann bekam ich den folgenden Fehler (teilweise meine eigene Übersetzung):

C664: Konvertierung von Parameter 1 von 'Qt :: CursorShape' nach 'const QCursor &' nicht möglich. Quelle oder Ziel hat einen unvollständigen Typ.

Ich versuche jetzt herauszufinden, warum mein Artikel einen unvollständigen Typ hat. Leider kann ich nicht nachvollziehen, wann genau dieses Problem auftrat. Die veränderte Basisklasse war meine einzige Vermutung, aber ich konnte mir nicht wirklich vorstellen, wie das die Ursache sein könnte. Nachdem ich den Fehler gegoogelt hatte, fand ich Beispiele, bei denen die Mitglieder der Klasse etwas schlecht definiert waren, aber ich konnte keinen Fehler in meinen Deklarationen finden. Also, hier ist der Header, falls ich etwas verpasst habe:

<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>

Wenn diese Datei korrekt ist, gibt es dann allgemeine Probleme, die zu undefinierten Typen führen, die ich auschecken kann? Vielleicht suche ich sogar am falschen Ort?

Danke für deine Zeit, Louise

Antworten auf die Frage(2)

Ihre Antwort auf die Frage