全透明制作屏幕雪花效果

#include "pubbase.h"
#include "snownode.h"
#include <QSize>
#include <QPoint>
#include <QBitmap>
#include <QPixmap>
#include <QToolButton>
#include <QApplication>
#include <QDesktopWidget>
#include <QGraphicsScene>
#include <QGraphicsView>
const int SnowNode::MAXSWOW = 19;SnowNode::SnowNode(QWidget *parent):QToolButton(parent),m_animation(new QPropertyAnimation(this, "geometry"))
{//必须设置为无边框,否则可见区域和图片绘制区域将出现不重叠setWindowFlags( Qt::FramelessWindowHint );resize(GetSnowSize());//对图片进行缩放m_pixmap.load(GetImgFileName());m_pixmap = m_pixmap.scaled(this->size(),Qt::IgnoreAspectRatio);setHidden(true);m_areaSize.setWidth(QApplication::desktop()->width());m_areaSize.setHeight(QApplication::desktop()->height());
}//初始化雪花
void SnowNode::InitSnow()
{this->move(qrand() % m_areaSize.width(), -32);
}//设置雪花动画
void SnowNode::FallingAnimation()
{int x = qrand()% m_areaSize.width();//雪花飘落全程时间m_animation->setDuration(8000);m_animation->setStartValue(QRect( pos(), size()));m_animation->setEndValue(QRect( QPoint(x,m_areaSize.height()), size()));m_animation->start();
}//返回雪花是否已着陆
bool SnowNode::IsLander()
{if(this->pos().y() >= m_areaSize.height()&& m_animation->state() == QAbstractAnimation::Stopped){return true;}return false;
}void SnowNode::paintEvent(QPaintEvent *event)
{//绘制背景图片this->setIcon(QIcon(m_pixmap));this->setIconSize(size());//将png图片透明部分设置为穿透this->setMask(m_pixmap.mask());//绘制QToolButton::paintEvent(event);}//每一朵雪花的大小,采用随机生成
QSize SnowNode::GetSnowSize()
{int x = qrand() % 10;return x >= 6 ? QSize(32,32) : x >= 3 ? QSize(24,24) : QSize(16,16);
}//获取雪花文件名
QString SnowNode::GetImgFileName()
{return QString().sprintf(":/image/_%d.png", qrand()% MAXSWOW);
}

qt屏幕漫天雪花飘落相关推荐

  1. java实现物体下落效果_手撸一个物体下落的控件,实现雪花飘落效果

    效果图: 圣诞登录页.gif 参考文章: Android自定义View--从零开始实现雪花飘落效果 感谢原文作者,不仅实现了效果,并且写得非常详细,还做了优化.笔者参考原文作者的源码,做了一点修改,实 ...

  2. 用python画雪花飘落_python实现雪花飘落效果实例讲解

    在学习pygame模块过程中,我们可以通过使用 pygame模块实现很多功能性的东西,但是很多人应该没有利用pygame实现过雪花飘落的效果吧,有时候可能是不知道从何入手或者是没有时间写,接下来我就教 ...

  3. python实现雪花飘落效果_python实现雪花飘落效果实例讲解及源码分享!

    点击蓝字"python教程"关注我们哟! 前言 Python现在非常火,语法简单而且功能强大,很多同学都想学Python!所以小的给各位看官们准备了高价值Python学习视频教程及 ...

  4. 雪花飘落代码java_JS实现的雪花飘落特效示例

    本文实例讲述了JS实现的雪花飘落特效.分享给大家供大家参考,具体如下: 首先我们要创建一个HTML文件,将其命名为index.html Canvas - 雪花特效 *{ margin:0px; pad ...

  5. python实现雪花动态图_python实现雪花飘落效果

    在学习pygame模块过程中,我们可以通过使用 pygame模块实现很多功能性的东西,但是很多人应该没有利用pygame实现过雪花飘落的效果吧,有时候可能是不知道从何入手或者是没有时间写,接下来我就教 ...

  6. android雪花飘落效果,【OpenGL】Shader实例分析(七)- 雪花飘落效果

    研究了一个雪花飘落效果.感觉挺不错的.分享给大家,效果例如以下: 代码例如以下: Shader "shadertoy/Flakes" { // https://www.shader ...

  7. vue实现雪花飘落特效

    <p>可以使用 HTML5 canvas 元素来实现雪花飘落的动画效果.你可以在 canvas 中绘制雪花的图形,然后使用 JavaScript 实现动画效果.</p> < ...

  8. python做雪花飘落_python实现雪花飘落效果实例讲解

    在学习pygame模块过程中,我们可以通过使用 pygame模块实现很多功能性的东西,但是很多人应该没有利用pygame实现过雪花飘落的效果吧,有时候可能是不知道从何入手或者是没有时间写,接下来我就教 ...

  9. java之雪花飘落效果的实现(撩妹小程序)

    第一章:程序的思路分析 1.思路分析 程序采用面向对象的思想,包含主程序,面板类和雪花类. 主程序用来生成窗口,存放面板等作用. 面板类用来存放背景图片,存放生成的雪花对象,定时去刷新雪花的位置,形成 ...

  10. python语言雪花_python实现雪花飘落效果实例讲解

    在学习pygame模块过程中,我们可以通过使用 pygame模块实现很多功能性的东西,但是很多人应该没有利用pygame实现过雪花飘落的效果吧,有时候可能是不知道从何入手或者是没有时间写,接下来我就教 ...

最新文章

  1. highstock 只显示所有 不显示 月_小米34寸曲面显示器深度体验 办公体验极佳 但是还有个大弱点...
  2. Eclipse非常有用的快捷键
  3. 安装python步骤-从0到1,Python安装步骤详解(附基础知识简介)!
  4. PO BO VO DTO POJO DAO概念及其作用(附转换图)
  5. python使用tomorrow实现多线程
  6. [CXF REST标准实战系列] 一、JAXB xml与javaBean的转换(转)
  7. ubuntu修改固定ip
  8. Comparable接口的使用:(知识回顾)
  9. Mac. 修改bash_file
  10. bark 自建服务器,开发者的专属推送小工具 - Bark
  11. 与cache相关的一些问题和思考
  12. 安卓投屏软件_该内容只能用miracast投屏
  13. 趋势预测算法大PK!
  14. python中国地图代码 上色_用Python绘制中国地图
  15. AdobeFlashPlayer.资料
  16. AJAX 聊天室实现原理终极解析
  17. 从还珠格格到延禧攻略,不变的是什么?
  18. cati服务器授权信息无效,CATI简易操作.doc
  19. 爬壁机器人外文文献_仿生爬壁机器人的研究现状
  20. 接线端子01——常见接线端子介绍

热门文章

  1. argis利用gp工具打包tpk切片包
  2. Android 内存剖析 – 发现潜在问题
  3. 翟菜花:搜索引擎这碗饭,到底能不能吃?
  4. aidlearning开发python使用教程_极致安卓之—Aid Learning基于Jupyter开发Java和Python
  5. mysql ubb html_自动闭合HTML/ubb标签函数
  6. 【Android Camera】SOF Freeze
  7. CentOS 7.3安装详解
  8. 【点云处理技术之PCL】点云配准算法之NDT
  9. 程序人生:羽翼未丰的我,当年如何在一个公司从A干到B
  10. Liunx 安装redis