时间:2021-05-20
本文实例为大家分享了Qt实现樱花飞舞效果的具体代码,供大家参考,具体内容如下
应女友要求,使用Qt做了一个在电脑桌面樱花飞舞的小程序。这里面用到了Qt动画效果QPropertyAnimation类来控制飞舞效果。使用label加载樱花图案。大概的核心代码如下:
Widget::Widget(QWidget *parent) : QWidget(parent), timer(new QTimer(this)), pixmap(new QPixmap(":/cherry.png")), ui(new Ui::Widget){ ui->setupUi(this); setWindowFlags(Qt::FramelessWindowHint | windowFlags()); //去除窗体标题 this->resize(qApp->desktop()->availableGeometry().size()); this->setAttribute(Qt::WA_TranslucentBackground, true); //设置背景透明 this->setAutoFillBackground(true); this->setWindowFlags(this->windowFlags() | Qt::WindowStaysOnTopHint); //窗口总在最顶层 connect(timer,SIGNAL(timeout()),this,SLOT(start())); QPixmap *pixmap = new QPixmap(":/cherry.png"); pixmap->scaled(ui->label->size(), Qt::KeepAspectRatio); pixmaps.append(pixmap); pixmap = new QPixmap(":/cherry2.png"); pixmap->scaled(ui->label->size(), Qt::KeepAspectRatio); pixmaps.append(pixmap); pixmap = new QPixmap(":/cherry3.png"); pixmap->scaled(ui->label->size(), Qt::KeepAspectRatio); pixmaps.append(pixmap); pixmap = new QPixmap(":/cherry4.png"); pixmap->scaled(ui->label->size(), Qt::KeepAspectRatio); pixmaps.append(pixmap); pixmap = new QPixmap(":/cherry5.png"); pixmap->scaled(ui->label->size(), Qt::KeepAspectRatio); pixmaps.append(pixmap); creatLabels(); createAnimation(); timer->start(1000);} //批量创建樱花标签void Widget::creatLabels(){ for(int i = 0; i < cherryNums;i++) { QLabel *label = new QLabel(this); label->setScaledContents(true); label->setPixmap(*pixmaps[i%pixmaps.size()]); label->setAttribute(Qt::WA_TranslucentBackground, true); label->resize(0,0); labs.append(label); }} //批量创建樱花动画void Widget::createAnimation(){ if(labs.empty()) return; QVector<int> rnds = generateRandomNumber(labs.size()*2); for(int i = 0;i < labs.size();i++) { QPropertyAnimation *ani = new QPropertyAnimation(this); ani->setTargetObject(labs[i]); ani->setPropertyName("geometry"); ani->setDuration(10000); ani->setLoopCount(-1); //无限循环 ani->setStartValue(QRect(rnds[i*2],0,200,60)); ani->setEndValue(QRect(rnds[2*i+1],this->height()-50,200,60)); animations.append(ani); }}效果如下图所示:
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本文在实现雪花效果的基础上,根据漫天飞舞雪花,实现下雨天场景的效果,使用eclipseandroid版本,具体内容如下雪花效果图:具体代码:1、漫天飞舞的雪花主
PyQt实现界面翻转切换效果是用qt的场景功能来实现的,用到了QGraphicsView,QGraphicsLinearLayout,QGraphicsWidg
今天为大家介绍几个Python“装逼”实例代码,python绘制樱花、玫瑰、圣诞树代码实例,主要使用了turtle库Python绘制樱花代码实例动态生成樱花效果
本文实例为大家分享了Qt实现简单动态时钟的具体代码,供大家参考,具体内容如下任务实现:通过Qt语言使用计时器实现一个简单的动态时钟;实现效果:实现过程:整体过程
本文实例为大家分享了QT实现动态时钟的具体代码,供大家参考,具体内容如下首次学习QT,这次用QT实现了动态图的制作,并成功制作了一个简易的时钟,效果如图:加快1