qt 动画 顺序 轮播图轮播图

Show time!

在这里插入图片描述

简单来说,就是一个轮播图。

切换的时候是有动画的。

点击下面的按钮可以切换动画。

图片可以是很多张很多张的,但显示在窗口上的只有三张,但它们的顺序是不会变的。

如果能直接有qml上面的pathview的组件能直接使用那就更好了,就不能自己敲widget了。

整体流程

首先,大概是这么一个窗口:

在这里插入图片描述

其中,灰色部分就是整个widget的大小,就是说leftprepare和rightprepare是在widget外的,就是准备着的。

左移和右移差不多,那只要明白左移一次的要点基本就差不多了:

动画

移动由qanimation实现,就是动画,动画说白了就是产生一堆间隔很小很小的数列设置进控件的属性,所以改变label的geometry就有了动画移动的效果。

位置

位置是先固定好的,由于五个label的geometry会改变,所以先定义五个rect记录着固定的位置

移动

重中之重,看起来再移动,其实并没有真正的移动。

一次左移,众所周知,就是left移到leftprepare,middle移到left,right移到left,rightprepare移到right,没错是这样,但如果想有第二次,第三次,第n次,就必须做一些顺序处理了,毕竟位置已经都变了。

哈哈哈但天才并不想处理label,处理的是图片的顺序。

上面 [ 位置 ] 的用法来了,简单的说,无论移动多少次,label们左移都是从left rect的位置移到leftprepare rect的位置,middle rect移到left rect…,移动负责的只是显示了移动的效果。

顺序

既然不处理控件移动后的顺序问题,还是得处理图片的顺序问题。加入从左到右插入了图片12345。

左移第一次,啥也不用动。

左移第二次开始,labelleft就要插入图片3了,图片顺序也就变成了23451。

换种说法,第一次左移,显示了图片2345的左移动画:

在这里插入图片描述

第二次左移则显示3451的左移动画:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值