博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
打地鼠游戏(7)
阅读量:5139 次
发布时间:2019-06-13

本文共 1623 字,大约阅读时间需要 5 分钟。

需求:

1、当移动鼠标到view容器中时,让鼠标样式变为一个锤子抬起的样子

2、点击时,鼠标样式变为按下的锤子样式

3、鼠标单击之后抬起时,显式为锤子抬起的样式

在QWidget中有一个属性:cursor可以定义用户的鼠标样式,可以通过设置这个属性值达到修改鼠标样式:

查看帮助文档:QCursor

1 QCursor(const QBitmap &bitmap, const QBitmap &mask, int hotX = -1, int hotY = -1)2 3 QCursor(const QPixmap &pixmap, int hotX = -1, int hotY = -1)

第一个参数,就是设置一个样式图片,其他参数有默认值。

对谁的cursor属性进行设置?

当移动鼠标到图元时(红色框)才需要显示为锤子样式;当移动鼠标到view容器时,如果没有移动到图元上,就不用显示为锤子样式,所以设置图元类:

1 void myitem::mousePressEvent(QGraphicsSceneMouseEvent *event){ 2  3     //修改鼠标样式 4     this->setCursor(QPixmap(":/bg/pic/picturedown.png")); 5  6     //判断当前是否是老鼠 7     if(this->ismouse()){ 8         qDebug()<<"打到老鼠"; 9         handle* pt = handle::getinstence();10         pt->addscore();11 12         //避免连续两次打击,从而记分重复13         this->setmouse(false);14 15         //打到老鼠之后更改显示为击中的样式16         this->setPixmap(QPixmap(":/mouse/pic/beatmouse.png"));17 18     }else{19         qDebug()<<"未打到老鼠";20     }21 }
1 void myitem::mouseReleaseEvent(QGraphicsSceneMouseEvent *event){2     //修改鼠标样式3     this->setCursor(QPixmap(":/bg/pic/pictureUp.png"));4 }
1 void myitem::mousePressEvent(QGraphicsSceneMouseEvent *event){ 2  3     //修改鼠标样式 4     this->setCursor(QPixmap(":/bg/pic/picturedown.png")); 5  6     //判断当前是否是老鼠 7     if(this->ismouse()){ 8         qDebug()<<"打到老鼠"; 9         handle* pt = handle::getinstence();10         pt->addscore();11 12         //避免连续两次打击,从而记分重复13         this->setmouse(false);14 15         //打到老鼠之后更改显示为击中的样式16         this->setPixmap(QPixmap(":/mouse/pic/beatmouse.png"));17 18     }else{19         qDebug()<<"未打到老鼠";20     }21 }

 

转载于:https://www.cnblogs.com/data1213/p/10852454.html

你可能感兴趣的文章
洛谷 P3237 [HNOI2014]米特运输
查看>>
Attributes.Add用途与用法
查看>>
JavaScript面向对象初探——封装和继承
查看>>
L2-001 紧急救援 (dijkstra+dfs回溯路径)
查看>>
【概率】poj 2096:Collecting Bugs
查看>>
javascript 无限分类
查看>>
【自制插件】MMD4Maya
查看>>
解决linux服务器乱码
查看>>
mapbox.gl文字标注算法基本介绍
查看>>
【C++】异常简述(二):C++的异常处理机制
查看>>
web.config在哪里
查看>>
SQL Server 2000 版本支持的最大物理内存量
查看>>
spring IOC装配Bean(注解方式)
查看>>
[面试算法题]有序列表删除节点-leetcode学习之旅(4)
查看>>
SpringBoot系列五:SpringBoot错误处理(数据验证、处理错误页、全局异常)
查看>>
kubernetes_book
查看>>
Redis 常用数据结构命令
查看>>
软件工程课堂作业
查看>>
OpenFire 的安装和配置
查看>>
web.config详解
查看>>