「互換性のない型 'GraphicsPixmapItem *' から 'GraphicsPixmapItem *' への割り当て」コンパイラ エラーを返す次のコードがあります。
誰か助けてくれませんか?
コードは次のとおりです。
メインファイル:
#include "graphicsscene.h"
#include <QApplication>
#include <QGraphicsView>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
GraphicsScene scene;
scene.setSceneRect(0, 0, 318, 458);
QGraphicsView view(&scene);
view.setBackgroundBrush(QPixmap(":/images/background.jpg"));
view.show();
return a.exec();
}
カスタム GraphicsScene ヘッダー:
#ifndef GRAPHICSSCENE_H
#define GRAPHICSSCENE_H
#include <QGraphicsScene>
#include "graphicspixmapitem.h"
class GraphicsScene : public QGraphicsScene
{
Q_OBJECT
public:
explicit GraphicsScene(QWidget *parent = 0);
QGraphicsPixmapItem *Logo;
};
#endif // GRAPHICSSCENE_H
カスタム GraphicsScene cpp:
#include "graphicsscene.h"
GraphicsScene::GraphicsScene(QWidget *parent) :
QGraphicsScene()
{
QPixmap Contactinfo(":/images/ScreenContacts.png");
GraphicsPixmapItem *buf = new GraphicsPixmapItem;
buf = addPixmap(Contactinfo);
buf->setPos(0, 40);
buf->setFlags(QGraphicsItem::ItemIsMovable | QGraphicsItem::ItemSendsScenePositionChanges);
}
カスタム QGraphicsPixmapItem ヘッダー:
#ifndef GRAPHICSPIXMAPITEM_H
#define GRAPHICSPIXMAPITEM_H
#include <QObject>
#include <QGraphicsPixmapItem>
class GraphicsPixmapItem : public QObject, public QGraphicsPixmapItem
{
Q_OBJECT
public:
GraphicsPixmapItem(QGraphicsItem *parent = 0, QGraphicsScene *scene = 0);
protected:
QVariant itemChange(GraphicsItemChange change, const QVariant &value);
};
#endif // GRAPHICSPIXMAPITEM_H
そして最後にカスタム QGraphicsPixmapItem cpp:
#include "graphicspixmapitem.h"
GraphicsPixmapItem::GraphicsPixmapItem(QGraphicsItem *parent, QGraphicsScene *scene)
: QGraphicsPixmapItem(parent, scene)
{
}
#include <QDebug>
QVariant GraphicsPixmapItem::itemChange(GraphicsItemChange change, const QVariant &value)
{
qDebug() << "itemChange Triggered";
if (change == ItemPositionChange) {
qDebug() << "Position changed";
}
return QGraphicsItem::itemChange(change, value);
}