1. int main(int argc, char **argv)
  2. {
  3. QApplication app(argc, argv);
  4. QWidget panel;
  5. QVBoxLayout *l = new QVBoxLayout(&panel);
  6. QFrame *viewport = new QFrame;
  7. viewport->setFrameShape(QFrame::Box);
  8. viewport->setFixedSize(,);
  9.  
  10. l->addWidget(viewport);
  11. QPushButton *b = new QPushButton("Swap");
  12. l->addWidget(b);
  13. QStateMachine machine;
  14. QState *s1 = new QState;
  15. QState *s2 = new QState;
  16.  
  17. QWidget *w1 = new QCalendarWidget(viewport);
  18. w1->setFixedSize(,);
  19. QWidget *w2 = new QListView(viewport);
  20. w2->setFixedSize(,);
  21.  
  22. QGraphicsBlurEffect *e1 = new QGraphicsBlurEffect(w1);
  23. QGraphicsBlurEffect *e2 = new QGraphicsBlurEffect(w2);
  24. w1->setGraphicsEffect(e1);
  25. w2->setGraphicsEffect(e2);
  26.  
  27. s1->assignProperty(w1, "pos", QPoint(,));
  28. s1->assignProperty(w2, "pos", QPoint(,));
  29. s1->assignProperty(e1, "blurRadius", );
  30. s1->assignProperty(e2, "blurRadius", );
  31. s2->assignProperty(w1, "pos", QPoint(-, ));
  32. s2->assignProperty(w2, "pos", QPoint(,));
  33. s2->assignProperty(e1, "blurRadius", );
  34. s2->assignProperty(e2, "blurRadius", );
  35.  
  36. s1->addTransition(b, SIGNAL(clicked()), s2);
  37. s2->addTransition(b, SIGNAL(clicked()), s1);
  38.  
  39. machine.addState(s1);
  40. machine.addState(s2);
  41.  
  42. QPropertyAnimation *anim1 = new QPropertyAnimation(w1, "pos");
  43. QPropertyAnimation *anim2 = new QPropertyAnimation(w2, "pos");
  44. anim1->setEasingCurve(QEasingCurve::InOutCubic);
  45. anim2->setEasingCurve(anim1->easingCurve());
  46. anim1->setDuration();
  47. anim2->setDuration(anim1->duration());
  48. machine.addDefaultAnimation(anim1);
  49. machine.addDefaultAnimation(anim2);
  50.  
  51. anim1 = new QPropertyAnimation(e1, "blurRadius");
  52. anim2 = new QPropertyAnimation(e2, "blurRadius");
  53. anim1->setDuration();
  54. anim2->setDuration(anim1->duration());
  55. machine.addDefaultAnimation(anim1);
  56. machine.addDefaultAnimation(anim2);
  57. machine.setInitialState(s1);
  58. machine.start();
  59. panel.show();
  60. return app.exec();
  61. }

slide from one widget to another

slide from one widget to another的更多相关文章

  1. AdminLTE-2.2.0 学习

    这货基于Bootstrap 3(提供了统一的样式,覆盖了默认的),所以官方建议先搞懂Bootstrap 3再说. # 布局 Layout 布局由四个主要部分组成: Wrapper (.wrapper) ...

  2. jqueryui引用出错(base is not a constructor,widget no found)

    出错的原因,主要是引用顺序出错. 正确顺序如下: query本身必须放在第一位: <script src="../../../Scripts/Jquery1.7.2/jquery-1. ...

  3. ArcGIS API for JavaScript 4.2学习笔记[10] 2D添加指北针widget、视图保存、视图padding(第二章完结)

    这几个例子是第二章除了入门之外比较简单的几个,就做个合集,把最核心的代码(第二参数)和 引用放上来即可,不作多解释. 2D地图添加指北针widget 2D地图一般修正方向为正北方就需要这个widget ...

  4. jq 自定义标注小组件 $.widget

    html 部分 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www ...

  5. StructureMap 代码分析之Widget 之Registry 分析 (1)

    说句实话,本人基本上没用过Structuremap,但是这次居然开始看源码了,不得不为自己点个赞.Structuremap有很多的类,其中有一个叫做Widget的概念.那么什么是Widget呢?要明白 ...

  6. Sencha ExtJS 6 Widget Grid 入门

    最近由于业务需要,研究了一下Sencha ExtJS 6 ,虽然UI和性能上据相关资料说都有提升,但是用起来确实不太顺手,而且用Sencha cmd工具进行测试和发布,很多内部细节都是隐藏的,出了问题 ...

  7. 使用 CoordinatorLayout 出错 inflating class android.support.design.widget.CoordinatorLayout

    ava.lang.RuntimeException: Unable to start activity ComponentInfo{com.czr.ianpu/com.czr.ianpu.MainAc ...

  8. yii2——自定义widget

    参考资料:http://www.bsourcecode.com/yiiframework2/how-to-create-custom-widget-in-yii2-0-framework/   如何使 ...

  9. Yii2 时间控件之把layDate做成widget

    实现效果如下 1.把layDate封装成Yii2的widget,存在 "\common\widgets"目录下,命名为DycLayDate,具体引用查看代码. 2.对应的model ...

随机推荐

  1. 关于ISAPI和CGI限制,这个要设为允许

    否则程序就报这个错误,注意,设置允许时不是在添加的网站上设置,而是在根iis,选择后右侧出现关于ISAPI和CGI限制,进去后选择相应版本,设置为允许就可以了

  2. css设置时父元素随子元素margin值移动

    父元素的盒子包含一个子元素盒子,给子元素盒子一个垂直外边距margin-top,父元素盒子也会往下走margin-top的值,而子元素和父元素的边距则没有发生变化. HTML,CSS: <div ...

  3. javascript 关于闭包的知识点

    javascript 关于闭包的认识 概念:闭包(closure)是函数对象与变量作用域链在某种形式上的关联,是一种对变量的获取机制. 所以要大致搞清三个东西:函数对象(function object ...

  4. 转载:详解CSS选择器、优先级与匹配原

    转载网址:http://polaris1119.javaeye.com/blog/764428 文章就CSS选择器的优先级问题做了一些总结,严格来讲,选择器的种类可以分为三种:标签名选择器.类选择器和 ...

  5. 复制、移动和删除:cp, rm, mv

    要复制文件,请使用cp(copy)命令.不过,cp命令的用途很多.除了单纯的复制之外,还可以建立连接文件(就是快捷方式),比较两个文件的新旧而予以更新,以及复制整个目录等等.至于移动目录与文件,则使用 ...

  6. PHP自定义弹出消息类,用于弹出提示信息并返回

    一个用PHP自写的弹出消息类,用于在程序出错时弹出提示,,弹出警告框,或在程序运行到某阶段的快捷提示,需用时只需传入参数即可,函数并不复杂,但觉得挺实用.具体代码: function Alert($a ...

  7. Linux下动态链接库和静态链接库

    第一部分:编译过程 先了解一下linux下C代码的编译过程,C代码的编译,一般分成四个阶段,包括:预编译,编译,汇编和链接,这四个阶段的分工是 预处理过程,负责头文件展开,宏替换,条件编译的选择,删除 ...

  8. Android Init语言

    Android Init语言是一种特别简单的语言,专门用来写Android的Init进程使用的配置文件的. 相当于Linux系统中的rc文件(这句话对于Linux者多半是句废话). Android I ...

  9. 『C # 开发』技能 Get√ ——制作CMD界面的简单GIF图片

    今天看到C#课本上个列子把星号(*)有规则打印在控制台中间位置 程序不难,利用的是光标定位函数Console.SetCursorPosition(x, y)做到的 心想是不是弄出一个动态的图案比较好玩 ...

  10. 当fixed元素相互嵌套时chrome下父元素会影响子元素的层叠关系

    问题:fixed元素被另一个fixed元素包含的时候在chrome下fixed子元素的定位会受到父元素的影响. demo(http://jsbin.com/qumah/1): <!DOCTYPE ...