Qt 动画应用

作者: paresly | 来源:发表于2019-11-10 18:19 被阅读0次

Qt的动画机制,能用在QWidget、QGraphicWidget、以及在QML中也有部分应用的模型,这里只是先举两个小的例子,目前也没有太深入研究。
以QPropertyAnimation为例,在Widget类中有另一个m_subWidget子类,点击按钮后,会以动画的形式显示出m_subWidget界面。

//定义槽连接
connect(btn,&QPushButton::clicked,this,[&](){
        showAnimation();
});

void Widget::showAnimation()
{
    m_subWidget->show();

    QPoint pStart,pEnd;
    pStart = mapToGlobal(QPoint(0-width(),0));
    pEnd = mapToGlobal(QPoint(0,0));

    animation = new QPropertyAnimation(m_subWidget, "geometry");
    animation->setDuration(1000); //设置动画时间
    animation->setStartValue(QRect(pStart, QSize(width(),height())));//设置动画开始位置
    animation->setEndValue(QRect(pEnd, QSize(width(),height())));//设置动画结束位置

    animation->setEasingCurve(QEasingCurve::SineCurve);
    animation->start();
}

根据帮助文档的说明,QSequentialAnimationGroup可以将多个个动画关联起来,而QParallelAnimationGroup类则会同时展示多个动画。

  QPushButton button("Animated Button");
  button.show();

  QPropertyAnimation anim1(&button, "geometry");
  anim1.setDuration(3000);
  anim1.setStartValue(QRect(0, 0, 100, 30));
  anim1.setEndValue(QRect(500, 500, 100, 30));

  QPropertyAnimation anim2(&button, "geometry");
  anim2.setDuration(3000);
  anim2.setStartValue(QRect(500, 500, 100, 30));
  anim2.setEndValue(QRect(1000, 500, 100, 30));

  QSequentialAnimationGroup group;

  group.addAnimation(&anim1);
  group.addAnimation(&anim2);

  group.start();

相关文章

  • Qt 动画应用

    Qt的动画机制,能用在QWidget、QGraphicWidget、以及在QML中也有部分应用的模型,这里只是先举...

  • Qt创建启动Logo

    在Qt中可以通过QSplashScreen来为应用程序添加一个启动画面;让它在应用程序主窗口出现前显示;主窗口加载...

  • QT - Quick时间线

    QT - Quick时间线 Qt Quick Timeline模块可启用基于关键帧的动画和参数化。Qt Desig...

  • Linux下打包发布Qt应用程序

    Linux下打包发布Qt应用程序 Linux下打包发布Qt应用程序 Linux下使用Qt进行开发的程序,如果想要在...

  • QT - Qt Quick编程入门

    Qt Quick编程入门 基于警报应用程序的Qt Quick教程。 本教程介绍如何开发简单的警报应用程序作为Qt ...

  • 2020-08-03 手动编译Qt库(msvc2019版本)

    Qt Windows exe应用程序部署指南:https://doc.qt.io/qt-5/windows-dep...

  • Qt 拾遗 007 创建 Qt 插件

    创建 Qt 插件 摘要: 高级 API:编写 Qt 自身扩展 低级 API:扩展 Qt 应用程序 部署插件 静态插...

  • C++框架 之Qt的一系列注意细节

    1.Qt概述 1.1 什么是Qt Qt是一个跨平台的C++图形用户界面应用程序框架。它为应用程序开发者提供建立艺术...

  • Qt及Qt Quick开发实战精解

    Qt及Qt Quick开发实战精解主要讲解了5个Qt综合应用程序的开发过程和Qt Quick的相关内容。《Qt及Q...

  • Qt及Qt Quick开发实战精解

    Qt及Qt Quick开发实战精解主要讲解了5个Qt综合应用程序的开发过程和Qt Quick的相关内容。《Qt及Q...

网友评论

    本文标题:Qt 动画应用

    本文链接:https://www.haomeiwen.com/subject/xgpabctx.html