私はカスタムQGraphicsItemを持っています。これは、Qtのドキュメントで説明されている標準的な手順を使用して、クリックするとカーソルを開いた手に変更します。これは過去2週間ほどは問題なく機能しました。昨日、クラス内でいくつか変更しました。最も重要なことは、QGraphicsItemではなくQGraphicsPixmapItemから直接サブクラス化することです。
ある時点で、私は次のエラーを受け取り始めました(部分的に私自身の翻訳):
C664:パラメータ1を「Qt ::CursorShape」から「constQCursor&」に変換できません。ソースまたはターゲットのタイプが不完全です。
私は今、私のアイテムが不完全なタイプである理由を理解しようとしています。残念ながら、この問題が発生し始めた時期をさかのぼることはできません。変更された基本クラスは私の唯一の推測でしたが、これがどのように原因であるかを実際に考えることはできませんでした。エラーをグーグルで調べた後、クラスのメンバーがやや不明確な例を見つけましたが、宣言にエラーは見つかりませんでした。だから、私が何かを逃した場合に備えて、ここにヘッダーがあります:
#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;
};
このファイルが正しい場合、チェックアウトできる未定義の型につながる一般的な問題はありますか?たぶん私は間違った場所を探していますか?
お時間をいただきありがとうございます、ルイーズ