qdialog qwidget qt 消失动画,QPropertyAnimation 丢帧 丢数据

本来想用QPropertyAnimation做一个显示或者消失的动画的,结果莫名其妙会丢帧,有时候30帧,有时候10帧,结果只好自己做一个定时器来模拟动画。

qdialog做显示动画在showevent搞就可以了,但是消失动画就不能用closeevent,经过一番摸索,终于ok了。

用qwidget直接重载closeevent完事,qdialog却不一样,

1、重载accept和ignore为空函数

2、捕获button事件,可以分别为on_button_accept,on_button_ignore(),共2个函数

3、在上面2个函数里,记录当前要返回的值(就是0或者1),分别启动定时器开始动画,并且不要调用任何返回事项

4、动画完毕后,根据要返回的值,分别调用QDialog::accept()或者QDialog::ignore()即可返回

核心在于重载accept和ignore,估计很多同学不知道这2个玩意儿也可以重载的,包括之前的我


===============后记=================

后来发现,release模式下动画还是可以的,看来debug下性能损失比较严重。

本文为3YL原创,转载无需联系,但请注明来自labisart.com。

原创文章不易,如果觉得有帮助,可打赏或点击右侧广告支持:

查看打赏记录

发表评论请遵守党国法律!后台审核后方可显示!
  • 最新评论
  • 总共0条评论
  • Blog v1.1© 2024 labisart.com 版权所有 | 联系:labartwork@163.com