- 新建桌面应用程序testKeyEvent,类名KeyEvent,基类QWidget,通过重写键盘事件到达操作的键盘的时候窗口中的图片上下左右移动,类似QtCreator设计模式下通过按键摆放部件时的效果。
- 头文件keyevent.h添加按键事件、绘图事件及drawpix()的声明,并添加成员数据。
keyevent.h
#ifndef KEYEVENT_H
#define KEYEVENT_H
#include <QWidget>
namespace Ui {
class KeyEvent; }
class KeyEvent : public QWidget {
Q_OBJECT
public:
explicit KeyEvent(QWidget *parent = 0);
~KeyEvent();
void drawPix(); //绘制图片
protected:
void keyPressEvent(QKeyEvent *event); //键盘事件
void paintEvent(QPaintEvent *event); //绘图事件
private:
Ui::KeyEvent *ui;
QPixmap *m_pix; //位图
QImage m_image; //图片
int m_startX; //图片x坐标
int m_startY; //图片y坐标
int m_width; //宽度
int m_height; //高度
int m_step; //步长
};
#endif // KEYEVENT_H
keyevent.cpp
#include "keyevent.h"
#include "ui_keyevent.h"
#include <QPainter>
#include <QPen>
#include <QKeyEvent>