Qt学习笔记之图片的上下左右移动
来源:互联网 发布:java陈芸 编辑:程序博客网 时间:2024/05/22 07:41
自己找的图片太大,在移动的时候不明显,懒得再找图片,所以用了QPainter将图片画在了label上
代码如下
void Widget::paintEvent(QPaintEvent *){ QPainter painter(this); QPixmap pix; pix.load(":img/move.png");//图片的位置 painter.drawPixmap(picLabel->x(),picLabel->y(),picLabel->width(),picLabel->height(),pix);}
将图片上下左右移动是通过重写keyPressEvent虚方法,在这个方法中捕捉按钮事件,用move移动位置
代码如下
widget.h
#ifndef WIDGET_H#define WIDGET_H#include <QWidget>#include <QLabel>#include <QPainter>#include <QKeyEvent>#include <QDebug>class Widget : public QWidget{ Q_OBJECTpublic: Widget(QWidget *parent = 0); ~Widget();private: QLabel *picLabel;protected: void paintEvent(QPaintEvent *); void keyPressEvent(QKeyEvent *event); void keyReleaseEvent(QKeyEvent *event);};#endif // WIDGET_H
widget.cpp
#include "widget.h"Widget::Widget(QWidget *parent) : QWidget(parent){ resize(500, 500); picLabel = new QLabel(this); picLabel->setFixedSize(50, 50);}//将图片画在labelvoid Widget::paintEvent(QPaintEvent *){ QPainter painter(this); QPixmap pix; pix.load(":img/move.png");//图片的位置 painter.drawPixmap(picLabel->x(),picLabel->y(),picLabel->width(),picLabel->height(),pix);}void Widget::keyPressEvent(QKeyEvent *event){ int x = 0; int y = 0; switch (event->key()) { case Qt::Key_Up: y = picLabel->y() - 10; if(y > -10) picLabel->move(picLabel->x(), y);//向上移动就是x不变y减小 break; case Qt::Key_Down: y = picLabel->y() + 10; if(y < this->height() - 40) { picLabel->move(picLabel->x(), y);//向下移动是x不变y 变大 } break; case Qt::Key_Right: x = picLabel->x() + 10; if(x < this->width() - 40) { picLabel->move(x, picLabel->y()); } break; case Qt::Key_Left: x = picLabel->x() - 10; if(x > -10) picLabel->move(x, picLabel->y()); break; default: break; }}void Widget::keyReleaseEvent(QKeyEvent *event){}Widget::~Widget(){}
main.cpp
#include "widget.h"#include <QApplication>int main(int argc, char *argv[]){ QApplication a(argc, argv); Widget w; w.show(); return a.exec();}
效果:
2 0
- Qt学习笔记之图片的上下左右移动
- Qt学习笔记之图片的上下左右移动
- iOS学习笔记之七--图片的移动
- ios学习笔记之九--图片移动代码的优化
- 移动的上下左右滑动
- 上下左右移动选择的布局
- 在一个方框内上下左右移动图片
- 图片随手机姿态变化上下左右移动
- iOS学习笔记之六--图片移动的基本界面 UIBotton的应用
- 基于JS移动端图片上下左右滑动图片的对比度与灰度变化
- Qt学习之路之无边窗口的移动
- Qt学习笔记:无边框窗体的移动
- Qt学习笔记:自定义窗体的移动+控件图标
- Qt学习笔记之图片显示(自动调整大小适应设计的范围)
- 上下左右移动
- 设置图片的上下左右居中
- 【Qt学习笔记】.显示图片
- 图片局部放大镜,可在大图上下左右移动并放大对应的区域
- java 权限修饰符
- 表格练习2
- ZedGraph使用(一)
- java并发编程(三)-守护线程、线程工厂
- 程序员的发展方向
- Qt学习笔记之图片的上下左右移动
- cocos2d-x 2.x01基础入门
- php中xml数据接口如何生成及调用
- Android Studio无法在线更新
- 贷齐乐系统最新版SQL注入(无需登录绕过WAF可union select跨表查询) 公开时间: 2016-04-21 22:58
- CCF_Z 字形扫描
- PID-4220-素数难题
- 关于android数据库no such table错误的反思
- WinRAR 使用说明