widget.h:
#ifndef WIDGET_H
#define WIDGET_H
#include <QWidget>
#include<QLabel>
#include<QKeyEvent>
#include<QString>
class Widget : public QWidget
{
Q_OBJECT
public:
Widget(QWidget *parent = 0);
~Widget();
protected:
void keyPressEvent(QKeyEvent *);
private:
QLabel * btn ;
QImage up;
QImage down;
QImage right;
QImage left;
QImage site;
};
#endif // WIDGET_H
widget.cpp:
#include "widget.h"
#include<QString>
#include<QImage>
Widget::Widget(QWidget *parent)
: QWidget(parent)
{
resize(600,600);
btn =new QLabel(this);
btn->setGeometry(240,240,105,105);
up=QImage(":/up.jpg");
down=QImage(":/down.jpg");
right=QImage(":/right.jpg");
left=QImage(":/left.jpg");
site=QImage(":/site.jpg");
btn->setPixmap(QPixmap::fromImage(site));
}
Widget::~Widget()
{
}
void Widget::keyPressEvent(QKeyEvent * e)
{
int x=btn->x();
int y=btn->y();
switch (e->key())
{
case Qt::Key_W:
btn->move(x,y-10);
btn->setPixmap(QPixmap::fromImage(up));
break;
case Qt::Key_A:
btn->move(x-10,y);
btn->setPixmap(QPixmap::fromImage(left));
break;
case Qt::Key_S:
btn->move(x,y+10);
btn->setPixmap(QPixmap::fromImage(down));
break;
case Qt::Key_D:
btn->move(x+10,y);
btn->setPixmap(QPixmap::fromImage(right));
break;
case Qt::Key_Escape:
btn->setPixmap(QPixmap::fromImage(site));
break;
}
QWidget::keyPressEvent(e);
}