我想用鼠标按下事件将pixmap项添加到场景中,但它没有显示任何内容。 这是我的班级:
#include <QGraphicsScene>
#include <QGraphicsPixmapItem>
#include <QGraphicsItem>
#include <QRectF>
#include <QPainter>
#include <QPointF>
#include "chessscene.h"
class knight:public QGraphicsPixmapItem
{
public:
knight();
virtual QRectF boundingRect();
void target();
void mousePressEvent(QGraphicsSceneMouseEvent *event);
private:
knight *currentknight;
};
和.cpp文件
#include "knight.h"
#include "chessscene.h"
#include "board.h"
#include <QGraphicsScene>
#include <QGraphicsPixmapItem>
#include <QGraphicsItem>
#include <QDebug>
#include <QRectF>
#include <QPointF>
#include <QGraphicsSceneMouseEvent>
knight::knight()
{
setFlag(ItemIsSelectable);
}
QRectF knight::boundingRect()
{
return QRectF (0,0,140,140);
}
void knight::target()
{
QGraphicsPixmapItem *item=new QGraphicsPixmapItem;
QPixmap pix(":/images/target.png");
item->setPixmap(pix);
chessscene _scene;
_scene.basescene->addItem(item);
qDebug() <<"A";
}
void knight::mousePressEvent(QGraphicsSceneMouseEvent *event)
{
target();
setFlag(ItemIsMovable);
QGraphicsPixmapItem::mousePressEvent(event);
}
qdebug显示我的功能正在运行,但我无法看到图像 我把这段代码:
QGraphicsPixmapItem *item=new QGraphicsPixmapItem;
QPixmap pix(":/images/target.png");
item->setPixmap(pix); chessscene _scene;
_scene.basescene->addItem(item);
在我的国际象棋的构造函数中,它正在工作但不在这里。 抱歉,我的英文和代码。我刚刚开始学习C ++,qt和英语。