qt屏幕漫天雪花飘落
全透明制作屏幕雪花效果
#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屏幕漫天雪花飘落相关推荐
- java实现物体下落效果_手撸一个物体下落的控件,实现雪花飘落效果
效果图: 圣诞登录页.gif 参考文章: Android自定义View--从零开始实现雪花飘落效果 感谢原文作者,不仅实现了效果,并且写得非常详细,还做了优化.笔者参考原文作者的源码,做了一点修改,实 ...
- 用python画雪花飘落_python实现雪花飘落效果实例讲解
在学习pygame模块过程中,我们可以通过使用 pygame模块实现很多功能性的东西,但是很多人应该没有利用pygame实现过雪花飘落的效果吧,有时候可能是不知道从何入手或者是没有时间写,接下来我就教 ...
- python实现雪花飘落效果_python实现雪花飘落效果实例讲解及源码分享!
点击蓝字"python教程"关注我们哟! 前言 Python现在非常火,语法简单而且功能强大,很多同学都想学Python!所以小的给各位看官们准备了高价值Python学习视频教程及 ...
- 雪花飘落代码java_JS实现的雪花飘落特效示例
本文实例讲述了JS实现的雪花飘落特效.分享给大家供大家参考,具体如下: 首先我们要创建一个HTML文件,将其命名为index.html Canvas - 雪花特效 *{ margin:0px; pad ...
- python实现雪花动态图_python实现雪花飘落效果
在学习pygame模块过程中,我们可以通过使用 pygame模块实现很多功能性的东西,但是很多人应该没有利用pygame实现过雪花飘落的效果吧,有时候可能是不知道从何入手或者是没有时间写,接下来我就教 ...
- android雪花飘落效果,【OpenGL】Shader实例分析(七)- 雪花飘落效果
研究了一个雪花飘落效果.感觉挺不错的.分享给大家,效果例如以下: 代码例如以下: Shader "shadertoy/Flakes" { // https://www.shader ...
- vue实现雪花飘落特效
<p>可以使用 HTML5 canvas 元素来实现雪花飘落的动画效果.你可以在 canvas 中绘制雪花的图形,然后使用 JavaScript 实现动画效果.</p> < ...
- python做雪花飘落_python实现雪花飘落效果实例讲解
在学习pygame模块过程中,我们可以通过使用 pygame模块实现很多功能性的东西,但是很多人应该没有利用pygame实现过雪花飘落的效果吧,有时候可能是不知道从何入手或者是没有时间写,接下来我就教 ...
- java之雪花飘落效果的实现(撩妹小程序)
第一章:程序的思路分析 1.思路分析 程序采用面向对象的思想,包含主程序,面板类和雪花类. 主程序用来生成窗口,存放面板等作用. 面板类用来存放背景图片,存放生成的雪花对象,定时去刷新雪花的位置,形成 ...
- python语言雪花_python实现雪花飘落效果实例讲解
在学习pygame模块过程中,我们可以通过使用 pygame模块实现很多功能性的东西,但是很多人应该没有利用pygame实现过雪花飘落的效果吧,有时候可能是不知道从何入手或者是没有时间写,接下来我就教 ...
最新文章
- highstock 只显示所有 不显示 月_小米34寸曲面显示器深度体验 办公体验极佳 但是还有个大弱点...
- Eclipse非常有用的快捷键
- 安装python步骤-从0到1,Python安装步骤详解(附基础知识简介)!
- PO BO VO DTO POJO DAO概念及其作用(附转换图)
- python使用tomorrow实现多线程
- [CXF REST标准实战系列] 一、JAXB xml与javaBean的转换(转)
- ubuntu修改固定ip
- Comparable接口的使用:(知识回顾)
- Mac. 修改bash_file
- bark 自建服务器,开发者的专属推送小工具 - Bark
- 与cache相关的一些问题和思考
- 安卓投屏软件_该内容只能用miracast投屏
- 趋势预测算法大PK!
- python中国地图代码 上色_用Python绘制中国地图
- AdobeFlashPlayer.资料
- AJAX 聊天室实现原理终极解析
- 从还珠格格到延禧攻略,不变的是什么?
- cati服务器授权信息无效,CATI简易操作.doc
- 爬壁机器人外文文献_仿生爬壁机器人的研究现状
- 接线端子01——常见接线端子介绍