zoukankan      html  css  js  c++  java
  • 打地鼠游戏(7)

    需求:

    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 }

    内在的趣味,表面的繁琐
  • 相关阅读:
    【bzoj2561】最小生成树 网络流最小割
    【bzoj4407】于神之怒加强版 莫比乌斯反演+线性筛
    【bzoj4816】[Sdoi2017]数字表格 莫比乌斯反演
    【bzoj3252】攻略 贪心+DFS序+线段树
    【bzoj1690】[Usaco2007 Dec]奶牛的旅行 分数规划+Spfa
    【bzoj3291】Alice与能源计划 模拟费用流+二分图最大匹配
    【bzoj2752】[HAOI2012]高速公路(road) 线段树
    wpf--- TextBlock文字设置属性
    无边框WPF窗体——允许拖动
    C# 枚举、字符串、值的相互转换
  • 原文地址:https://www.cnblogs.com/data1213/p/10852454.html
Copyright © 2011-2022 走看看