漂亮!用Qt Quick实现Coverflow效果

趁着放假又拾起了很久不动的Qt了,本想在假期写点什么程序,但是到现在一点想法也没有,也就算了。今天写这个Coverflow效果纯属无聊的Play,没有太多技术含量,重要的是没用到数学和几何知识。程序用了Qt 5.2 + QtQuick 2.0架构,纯qml语言,有兴趣的童鞋可以试着完善它,我已经将源代码提交到Github上了。

 

好了我们切入主题:

为了写这个效果,我非常仔细的研究了Finder中的Coverflow效果,发现它是这样的:


我认为写出Finder中的那种效果应该还需要一定的数学知识,毕竟它是实时变化的,也就是画面的布局是随窗口大小而动态调整的。于是我设计了一个一屏只有三页的Coverflow效果:


还是非常的小清新嘛- -

 

来讲一下实现原理吧。

准备工作:

首先需要创建一个Rectangle元素,在里面放一个Text元素:

Text {
                color: "#ffffff"
                font.family: "ArialBlack"
                font.pointSize: 60
 
                anchors.centerIn: parent
 
                text: index
            }


 

为了方便定位,我使用了anchors属性:

anchors.centerIn:parent

 

然后一个比较重要的属性transform我给它赋了RotationTranslate两种变换,我们一会要用到它:

transform: [
                Rotation {
                    id: rotate; angle: 0;origin.y: 125; origin.x: 125;  axis { x:0; y: 1; z: 0 }
                    Behavior on angle {
                        NumberAnimation {easing.overshoot: 1; easing.type: Easing.OutBack; duration: 600 }
                    }
                },
                Translate {
                    id: trans; x: 0
                    Behavior on x {
                        NumberAnimation {easing.overshoot: 1; easing.type: Easing.OutBack; duration: 600;  }
                 
  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值