使用鼠标按下事件添加像素图

时间:2014-08-14 13:43:24

标签: qt mouseevent qgraphicsscene qpixmap

我想用鼠标按下事件将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和英语。

0 个答案:

没有答案