qgraphicsview鼠标移动图片_交互式QGraphicsView(平移/缩放/旋转)-阿里云开发者社区...

简述

Graphics View提供了一个平台用于大量自定义 2D 图元的管理与交互框架包括一个事件传播架构支持场景 Scene 中的图元 Item 进行精确的双精度交互功能。Item 可以处理键盘事件、鼠标按下、移动、释放和双击事件同时也能跟踪鼠标移动。

和 Google 地图一样在管理大量 Item 的时候通常需要 View 具有交互平移/缩放/旋转功能。

交互式 QGraphicsView

便于以后复用实现一个交互式 QGraphicsView - InteractiveView。

主要功能包括

平移

方式一鼠标左键按下然后移动

方式二按下上/下/左/右键分别向各个方向移动

缩放

方式一鼠标滚轮向上滚动放大向下滚动缩小

方式二按加号键带 Shift进行放大按减号键缩小

旋转按空格键逆时针旋转回车键顺时针旋转

效果

源码

interactive_view.h

#ifndef INTERACTIVE_VIEW_H

#define INTERACTIVE_VIEW_H

#include

class QWheelEvent;

class QKeyEvent;

class InteractiveView : public QGraphicsView

{

Q_OBJECT

public:

explicit InteractiveView(QWidget *parent = 0);

// 平移速度

void setTranslateSpeed(qreal speed);

qreal translateSpeed() const;

// 缩放的增量

void setZoomDelta(qreal delta);

qreal zoomDelta() const;

protected:

// 上/下/左/右键向各个方向移动、加/减键进行缩放、空格/回车键旋转

void keyPressEvent(QKeyEvent *event) Q_DECL_OVERRIDE;

// 平移

void mouseMoveEvent(QMouseEvent *event) Q_DECL_OVERRIDE;

void mousePressEvent(QMouseEvent *event) Q_DECL_OVERRIDE;

void mouseReleaseEvent(QMouseEvent *event) Q_DECL_OVERRIDE;

// 放大/缩小

void whee

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值