Qt模仿QQ震动效果

构造里面

m_animation = new QPropertyAnimation(this,"pos");

void Widget::ShakeAnimation()
{
    QPoint pos = this->pos();
//动画还没有结束就先立马停止,防止用户不停的点击
    if(m_animation->state() == QPropertyAnimation::Running)
    {
        m_animation->stop();
    }
    m_animation->setDuration(500);
    m_animation->setStartValue(pos);
    m_animation->setKeyValueAt(0.1,pos + QPoint(-5,-5));
    m_animation->setKeyValueAt(0.2,pos + QPoint(0,-5));
    m_animation->setKeyValueAt(0.3,pos + QPoint(5,0));
    m_animation->setKeyValueAt(0.4,pos + QPoint(6,1));
    m_animation->setKeyValueAt(0.5,pos + QPoint(7,-7));
    m_animation->setKeyValueAt(0.6,pos + QPoint(-6,6));
    m_animation->setKeyValueAt(0.7,pos + QPoint(-8,0));
    m_animation->setKeyValueAt(0.8,pos + QPoint(0,6));
    m_animation->setKeyValueAt(0.9,pos + QPoint(4,2));
    m_animation->setEndValue(pos);
    m_animation->start();
}

很简单的功能,希望大家也分享下关于Qt的小知识

原文出处:寒山-居士

原文链接:https://blog.csdn.net/Esonpo/article/details/23265327

本文观点不代表Dotnet9立场,转载请联系原作者。

发表评论

登录后才能评论

评论列表(9条)

  • 小飞机MLA
    小飞机MLA 2019年12月11日 14:54

    嘻嘻嘻,我已经从Qt入坑到WPF啦

    • 站长-Dotnet9
      Dotnet9 2019年12月11日 15:09

      @小飞机MLA恭喜恭喜,不过跨平台Qt还是首选,如果是Windows那毫不犹豫选择WPF。

    • 小飞机MLA
      小飞机MLA 2019年12月11日 15:16

      @Dotnet9嘿嘿,之前想学习Qt就是因为它是跨平台的首选,现在那个软件做完了感觉跨平台不是我的刚需,还是要在Windows上跑,而且我们单位电脑还没有Window10,所系就选WPF啦,毕竟想做Windows桌面应用不学XAML也说不过去啊,嘻嘻。

    • 站长-Dotnet9
      Dotnet9 2019年12月11日 15:42

      @小飞机MLA您是?您是这篇文章的作者吗?

    • 小飞机MLA
      小飞机MLA 2019年12月11日 15:45

      @Dotnet9不是不是,我是一个普普通通的小白,是为了学习WPF来到了贵地,偶然看到了Qt,感慨了以下嘻嘻。

    • 站长-Dotnet9
      Dotnet9 2019年12月11日 15:51

      @小飞机MLA嗯,我原来做过2年多Qt,Qt的语法还是挺不错的,您可以到问答社区留言,帮站长试试问答社区功能,谢谢您。

    • 小飞机MLA
      小飞机MLA 2019年12月11日 16:34

      @Dotnet9嘻嘻嘻,我在留言板留言了,试了试还不错,就是我回车分段写的,提交显示之后就成一整段了昂。多向大佬学习!

    • 站长-Dotnet9
      Dotnet9 2019年12月11日 16:38

      @小飞机MLA要的,经历挺丰富的,我去加个表情试试。

    • 站长-Dotnet9
      Dotnet9 2019年12月11日 16:00

      @小飞机MLA有学习需要的话可以随时给站长留言,站长可以免费提供已有的资源。