qt实现简单的下雪效果1.读入雪花图片1.1 使用qpixmap类读入图片
qpixmap pix("://snow2.png");
1.2 使用prawpixmap在界面上显示图片
//前两个参数表示图片左上角顶点的位置,后两个参数表示图片的大小p.drawpixmap(50,50,20,20,pix);
2.设置随机的坐标点并显示图案2.1 创建一个容器存放坐标点。
qlist<qpoint> disppos;
2.2 在构造函数中初始化这些坐标点,需要设置随机数种子,记得加上<qtime>头文件
//设置随机数种子qsrand(qtime(0,0,0).secsto(qtime::currenttime()));
/用随机数初始化这些坐标点,随机分布在窗口中for(int i = 0;i<10;i++)
{
disppos << qpoint(qrand()%width(),qrand()%height());
}
2.3 在窗口中在这些坐标点上显示雪花图案。
//将图片的大小设置为30*30for(int i = 0;i<disppos.count();i++)
p.drawpixmap(disppos[i],pix.scaled(30,30));
3.控制雪花的”飘落”3.1 使用timerevent事件,先开启定时器
//每过50毫秒调用一次事件
timerid = starttimer(50);
3.2 在事件中改变雪花图案的y坐标值,使其下落
//遍历所有雪花for(int i = 0;i<disppos.count();i++){ //y坐标在原来基础上+1
disppos[i].sety(disppos[i].y() + 1); //判断:当y坐标超过窗口高度时
if(disppos[i].y() >= height())
{ //将y坐标设置为0:从头开始
disppos[i].sety(0); //但是x坐标进行随机,也就是从窗口顶随机位置出现
disppos[i].setx(qrand()%width());
}
}//记得刷新界面update();
以上就是用qt实现简单的下雪效果的详细内容。